[英]how could I split the string into vallid substrings regardless of uncertain length blank inside
例如:執行后,字符串"hello world yo"
和"hello world yo"
應嚴格相同。
此外,輸出應為String[]
,其中:
String[0] == "hello"; String[1] == "world"; String[2] == "yo";
以便其他方法可以處理有效詞。
我當時在想String.split(" ")
,但是單詞之間的空格是不確定的,然后會引發異常。
您可以使用
String.split("\\s+") // one or more whitespace.
請勿將==
用於字符串共義,而應使用String.equals()
編輯評論中的問題
叫什么符號? 如果有一個或多個“ _”或“ \\ n”怎么辦?
如您所見, String#split()API接受正則表達式作為參數。 \\s
是空白的簡寫字符類,而+
用於重復一次或多次重復上一個項目。
現在,如果您想在
_
即 下划線-> "this__is_test".split("[_]+");
\\n
即。 換行符-> "this__is_test\\n new line".split("\\\\r?\\\\n");
您可以在"\\\\s+"
上拆分。 分割成一個或多個空白字符。
String.split()
需要一個正則表達式,因此您只需執行String.split(" +")
。
我認為split函數使用正則表達式,但是如果不這樣做,則下面的方法有效。
這種正則表達式可能不正確,但是它演示了您要嘗試執行的操作的概念。
Pattern p = Pattern.compile("(.*?) *(.*)");
Matcher m = p.matcher(s);
if (m.matches()) {
String name = m.group(1);
String value = m.groupo(2);
}
for (int i = 1; i<=m.groupCount(); i++) {
System.out.println(m.group(i));
}
您可以使用正則表達式拆分字符串。
String.split(Regular Expression);
對於多個空格,可以使用正則表達式:“ \\\\ s +”,它代表空格。
“ ==“運算符,用於判斷左右是否相等。 對於String,它們實際上是Object,這意味着它們被視為引用(如C中的指針)。
因此,如果要比較兩個字符串的內容,可以使用String的equals(String)方法。 例如str1.equals(str2)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.