Yanıtlar:
Satırlarında bir şey
myString.split("\\s+");
Bu, tüm beyaz boşlukları sınırlayıcı olarak gruplandırır.
Dize varsa:
"Hello[space][tab]World"
Bu dizeleri vermelidir "Hello"ve "World"arasındaki boşluk ihmal [space]ve [tab].
VonC belirttiği gibi Java ilk özel karakter dizesi kaçmayı deneyin ve göndermek çünkü, ters eğik çizgi kaçan edilmelidir olduğu çözümlenmesi mümkündür. Ne istiyorsan, değişmezdir "\s", yani geçmen gerekir "\\s". Biraz kafa karıştırıcı olabilir.
\\sEşdeğerdir [ \\t\\n\\x0B\\f\\r].
trim()İlk önce şunları yapmanız gerektiğine dikkat edin : trim().split("\\s++")- aksi takdirde, örneğin abc'yi bölmek önce iki boş dize yayar.
"\\\\s"?
Çoğu regex lehçelerinde, bu tür bir şey için kullanabileceğiniz bir dizi uygun karakter özeti vardır - bunlar hatırlanması gereken iyi şeylerdir:
\w - Herhangi bir kelime karakteriyle eşleşir.
\W - Herhangi bir kelime olmayan karakterle eşleşir.
\s - Herhangi bir boşluk karakteriyle eşleşir.
\S - Boşluk karakterleri dışında herhangi bir şeyle eşleşir.
\d - Herhangi bir rakamla eşleşir.
\D - Rakamlar dışında herhangi bir şeyle eşleşir.
"Regex Cheatsheets" araması, bir sürü yararlı özetlerle ödüllendirilmelidir.
Javascript'te bu çalışmayı sağlamak için aşağıdakileri yapmak zorunda kaldım:
myString.split(/\s+/g)
"\\ s +" hile yapmalı
Ayrıca bir UniCode kırılma alanı xA0 olabilir ...
String[] elements = s.split("[\\s\\xA0]+"); //include uniCode non-breaking
Apache Commons Lang, boşluk karakterleri olan bir dizeyi sınırlayıcı olarak bölme yöntemine sahiptir:
StringUtils.split("abc def")
Bunu kullanmak normal ifade modelinden daha kolay olabilir.
aşağıdaki ifadeyi kullanarak bir dizeyi satır sonuna bölebilirsiniz:
String textStr[] = yourString.split("\\r?\\n");
aşağıdaki ifadeyi kullanarak bir dizeyi Whitespace'e bölebilirsiniz:
String textStr[] = yourString.split("\\s+");
String str = "Hello World";
String res[] = str.split("\\s+");
Bu kodu inceleyin .. iyi şanslar
import java.util.*;
class Demo{
public static void main(String args[]){
Scanner input = new Scanner(System.in);
System.out.print("Input String : ");
String s1 = input.nextLine();
String[] tokens = s1.split("[\\s\\xA0]+");
System.out.println(tokens.length);
for(String s : tokens){
System.out.println(s);
}
}
}