繁体   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