[英]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.