亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

用豎線字符(“ |”)分割字符串

用豎線字符(“ |”)分割字符串

寶慕林4294392 2019-10-16 13:43:22
我無法從此字符串拆分值:"Food 1 | Service 3 | Atmosphere 3 | Value for money 1 "這是我當前的代碼:String rat_values = "Food 1 | Service 3 | Atmosphere 3 | Value for money 1 ";String[] value_split = rat_values.split("|");輸出量[,F,o,o,d,,1,,|,,S,e,r,v,i,c,e,,3,,|,,A,t,m,o,s,p, h,e,r,e,,3,,|,,V,a,l,u,e,,f,o,r,,m,o,n,e,y,,1,]預期產量飲食1 服務3 氛圍3 物有所值1
查看完整描述

3 回答

?
幕布斯6054654

TA貢獻1876條經驗 獲得超7個贊

使用Pattern.quote()

String[] value_split = rat_values.split(Pattern.quote("|"));


//System.out.println(Arrays.toString(rat_values.split(Pattern.quote("|")))); //(FOR GETTING OUTPUT)

使用轉義符(用于元字符)

String[] value_split = rat_values.split("\\|");

//System.out.println(Arrays.toString(rat_values.split("\\|"))); //(FOR GETTING OUTPUT)

使用StringTokenizer(避免正則表達式問題)

public static String[] splitUsingTokenizer(String Subject, String Delimiters) 

{

     StringTokenizer StrTkn = new StringTokenizer(Subject, Delimiters);

     ArrayList<String> ArrLis = new ArrayList<String>(Subject.length());

     while(StrTkn.hasMoreTokens())

     {

       ArrLis.add(StrTkn.nextToken());

     }

     return ArrLis.toArray(new String[0]);

}

使用Pattern類(java.util.regex.Pattern)

Arrays.asList(Pattern.compile("\\|").split(rat_values))

//System.out.println(Arrays.asList(Pattern.compile("\\|").split(rat_values))); //(FOR GETTING OUTPUT)

輸出量

[Food 1 ,  Service 3 ,  Atmosphere 3 ,  Value for money 1 ]


查看完整回答
反對 回復 2019-10-16
?
滄海一幻覺

TA貢獻1824條經驗 獲得超5個贊

或.. Pattern#quote:


String[] value_split = rat_values.split(Pattern.quote("|"));

發生這種情況是因為String#split接受正則表達式:


|在正則表達式中有特殊含義。


quote將為regex返回String表示形式。


查看完整回答
反對 回復 2019-10-16
  • 3 回答
  • 0 關注
  • 2625 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號