[英]java string.split() issue
基本上使用: split("#@");
僅在同時匹配字符#
@
時才嘗試拆分
通過使用:
split("[#@]");
您正在從班級中選擇在#
或@
上分割
在Java正則表達式中 ,括在方括號[]
中的字符稱為字符類。
這個...
String input = "Brazil#2@1#Scotland";
System.out.println(Arrays.toString(input.split("[#@]")));
...將使用定界符#
或@
分隔String
,而不考慮順序,並輸出:
[Brazil, 2, 1, Scotland]
在這種情況下等效於:
System.out.println(Arrays.toString(input.split("#|@")));
但是,用不被[]
括起來的#@
拆分將搜索#
后跟@
的序列。
這本身不會觸發任何ArrayIndexOutOfBoundsException
,它只會返回一個包含原始輸入String
的大小為1的array
。
但是,您可能稍后在代碼中假設array
大小為> 1
,因此為Exception
。
[#@]
表示將在#
或@
上分割。
有關更多信息: http : //docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html
split函數給您一個錯誤的原因是因為@和#不在字符串中,我建議使用StringTokenizer來拆分字符串。
因此,創建它的新實例-StringTokenizer s = new StringTokenizer(“ Brazil#2 @ 1#Scotland”);
然后將分度符設置為@,然后將其拆分,然后用分度符#進行拆分
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.