繁体   English   中英

难以在定界符处分割字符串并将其保留

[英]Difficulty splitting string at delimiter and keeping it

我有一个成对读取的字符串,用逗号分隔。 但是,我并不总是想在逗号处分割,因为输入中并不总是有1个逗号。 例如,字符串,

(http://www.wolframalpha.com/input/?i=103%2F30+%3D+4a-3b,+71%2F60+%3D+a+%2B+b
,http://www.wolframalpha.com/input/?i=x%5E2%2B5x%2B6,file:///tmp/foo/bar/p,d,f.pdf)

读全部一行。 对于这种情况,我只想在.h处拆分,而在字符串中的其他地方都没有拆分。 本质上,分割后,字符串应为:

http://www.wolframalpha.com/input/?i=103%2F30+%3D+4a-3b,+71%2F60+%3D+a+%2B+b

http://www.wolframalpha.com/input/?i=x%5E2%2B5x%2B6

file:///tmp/foo/bar/p,d,f.pdf

保持第一个字符串中逗号的顺序。 (我将删除括号)。 我已经看过这个堆栈溢出问题,尽管很有帮助,但没有正确地分割此字符串。 这是用Java编写的。 任何帮助表示赞赏。

您可以使用正则表达式进行拆分。 请参见下面的代码片段。

String str = "(http://www.wolframalpha.com/input/?i=103%2F30+%3D+4a-3b,+71%2F60+%3D+a+%2B+b,http://www.wolframalpha.com/input/?i=x%5E2%2B5x%2B6)";
String[] strArr = str.split("(,(?=http))");

您将拥有根据您的要求可能具有的所有值的Array。

在“ http”上分割,然后重新添加。

伪代码

String input = "http://www.wolframalpha.com/input/?i=103%2F30+%3D+4a-3b,+71%2F60+%3D+a+%2B+b
,http://www.wolframalpha.com/input/?i=x%5E2%2B5x%2B6"

List<String> split = input.split('http');
List<String> finalList = new ArrayList<String>();

for(String fixup in split)
{
  finalList.put( "http" + fixup );
}

Final应该包含两个URL。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM