Jawaban:
Sesuatu di barisan
myString.split("\\s+");
Ini mengelompokkan semua ruang putih sebagai pembatas.
Jadi jika saya memiliki string:
"Hello[space][tab]World"
Ini harus menghasilkan string "Hello"
dan "World"
dan menghilangkan ruang kosong antara [space]
dan[tab]
.
Sebagai VonC menunjukkan, backslash harus melarikan diri, karena Java pertama akan mencoba untuk melarikan diri dari string untuk karakter khusus, dan mengirim yang dapat dipecah. Yang Anda inginkan, adalah literal "\s"
, yang berarti, Anda harus lulus "\\s"
. Itu bisa sedikit membingungkan.
Ini \\s
setara dengan [ \\t\\n\\x0B\\f\\r]
.
trim()
terlebih dahulu: trim().split("\\s++")
- jika tidak, mis. Membelah `abc` akan memancarkan dua string kosong terlebih dahulu.
"\\\\s"
?
Dalam sebagian besar dialek regex ada satu set ringkasan karakter yang nyaman yang dapat Anda gunakan untuk hal semacam ini - ini adalah yang baik untuk diingat:
\w
- Cocok dengan karakter kata apa pun.
\W
- Cocok dengan karakter non-kata.
\s
- Cocok dengan karakter spasi-putih.
\S
- Cocok dengan apa pun kecuali karakter spasi putih.
\d
- Cocok dengan angka apa pun.
\D
- Mencocokkan apa pun kecuali angka.
Pencarian untuk "Regex Cheatsheets" akan memberi Anda banyak ringkasan yang bermanfaat.
Agar ini berfungsi dalam Javascript , saya harus melakukan hal berikut:
myString.split(/\s+/g)
"\\ s +" harus melakukan trik
Anda juga dapat memiliki ruang UniCode ...
String[] elements = s.split("[\\s\\xA0]+"); //include uniCode non-breaking
Apache Commons Lang memiliki metode untuk membagi string dengan karakter spasi sebagai pembatas:
StringUtils.split("abc def")
Ini mungkin lebih mudah digunakan daripada pola regex.
Anda dapat membagi string dengan jeda baris dengan menggunakan pernyataan berikut:
String textStr[] = yourString.split("\\r?\\n");
Anda dapat membagi string dengan Whitespace dengan menggunakan pernyataan berikut:
String textStr[] = yourString.split("\\s+");
String str = "Hello World";
String res[] = str.split("\\s+");
Pelajari kode ini .. semoga berhasil
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);
}
}
}