簡體   English   中英

在Java中恢復由string.split()拆分的字符串

[英]Recovering the string split by string.split() in Java

我有一個字符串“ 我愛A.我討厭B ”。 如果我通過使用拆分它

 string.split("\\p{Punct}") 

我將得到兩個字符串,其中string1將是“ 我愛A ”而string2將是“ 我討厭B ”。 請注意,代替“ ”我可能還有其他任何標點字符。 如何使用正確的標點符號恢復分割操作之前的確切字符串。

保持對字符串的引用 - 如果你有任何一點點,你就無法猜出你以前有過什么

如果使用以下正則表達式進行拆分(使用零寬度后置斷言 ):

(?<=\p{Punct})

它實際上不會消耗標點符號,只是檢查分割點之前是否有標點字符。 因此,標點符號將保留在最終字符串中:

String s = "I love A. I hate B.";
String res[] = s.split("(?<=\\p{Punct})");
System.out.println(Arrays.toString(res));

結果:

[I love A.,  I hate B.]

現在,您可以將數組的元素連接在一起以恢復原始字符串。

演示: http//ideone.com/0umjkZ

您可以使用StringTokenizer並使用nextElement()方法管理元素。

樣品。

String str = "I love A. I hate B";

StringTokenizer st = new StringTokenizer(str,".");

String beforeElement;
String otherElement;

while (st.hasMoreElements()){

    beforeElement=st.nextElement();

     if(st.hasMoreElements()){

       otherElement=st.nextElement();

    }

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM