我有一些文字:
DESC:manner How did serfdom develop in and then leave Russia ? ENTY:cremat What films featured the character Popeye Doyle ? DESC:manner How can I find a list of celebrities ' real names ?
我逐行阅读它们,我希望逐行将每行转换为string Array
。
像这样:
数组= [DESC,:,方式,如何,做过,农奴制,开发,进入,然后,离开,俄罗斯,?]
答案 0 :(得分:2)
String[] arr = str.replaceAll(":"," : ").split(" ");
答案 1 :(得分:0)
String value =“”; String [] values = value.split(“”);
这应该通过空格将数组作为分隔符。
答案 2 :(得分:0)
对于更全面的解决方案,您可以使用边界匹配器,如here
所述String s = "DESC:manner How did serfdom develop in and then leave Russia ?";
String[] split = s.split("\\b");
split数组包含您要查找的内容。
答案 3 :(得分:0)
你的意思是你想把你的字符串行拆分成一个字符串数组。
有两种方便的方法可以做到这一点。
首先当然是拆分方法。你可以在j2se String类中引用这个方法。
第二个是正则表达式。你可以参考j2se正则表达式类中的信息
答案 4 :(得分:0)
对于你的例子:
String[] part = line.split(":| ");
line
将是您的示例行。
请注意,正则表达式中的space
之后有|
。
我建议您阅读正则表达式并获取Expresso等工具来试用它们。
答案 5 :(得分:0)
如果您不介意从结果中删除标点符号,String#split("\\W")
(拆分为非单词字符)会执行此操作:
// you've got this from the input parser
String inputLine = "DESC:manner How did serfdom develop in and then leave Russia ?";
String[] wordArray = inputLine.split("\\W");
这给出了:
wordArray = [DESC, manner, How, did, serfdom, develop, in, and, then, leave, Russia]
如果你需要标点符号,我认为正则表达式不会这样做,因为它通过销毁匹配的字符进行拆分。
答案 6 :(得分:0)
问题是你想要保留一些分隔符而不是其他分隔符(保持:
并松开空格)。我认为你需要一个正常的表达来实现这一目标。这样的事情应该这样做:
String str = "DESC:manner How did serfdom develop in and then leave Russia ?";
String arr[] = str.split("((?<=:)|(?=:))|( )");
这会使用Lookahead和Lookbehind RegEx来查找/保留分隔符:
,同时我们在空格( )
的正常分割中添加/删除分隔符。{/ p>
此后应该是:
arr = [DESC, :, manner, How, did, serfdom, develop, in, and, then, leave, Russia, ?]
答案 7 :(得分:0)
您可以使用Guava's Splitter:
Iterable<String> wordsIterable = Splitter.on(Pattern.compile("\\b")).trimResults().omitEmptyStrings().split(string);
String[] words = Iterables.toArray(wordsIterable, String.class);