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.
\\s
Eş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);
}
}
}