Ani*_*RNG 42 java string words spaces
我需要我的Java程序采用如下字符串:
"This is a sample sentence."
Run Code Online (Sandbox Code Playgroud)
并将其转换为字符串数组,如:
{"this","is","a","sample","sentence"}
Run Code Online (Sandbox Code Playgroud)
没有句号或标点符号(最好).顺便说一下,字符串输入总是一个句子.
有没有一种简单的方法可以做到这一点,我没有看到?或者我们是否真的必须经常搜索空间并从空格之间的区域(这些是单词)创建新的字符串?
Ada*_*kin 59
String.split()将完成你想要的大部分工作.然后,您可能需要遍历单词以删除任何标点符号.
例如:
String s = "This is a sample sentence.";
String[] words = s.split("\\s+");
for (int i = 0; i < words.length; i++) {
// You may want to check for a non-word character before blindly
// performing a replacement
// It may also be necessary to adjust the character class
words[i] = words[i].replaceAll("[^\\w]", "");
}
Run Code Online (Sandbox Code Playgroud)
小智 21
现在,这可以通过split
正则表达式完成:
String s = "This is a sample sentence with []s.";
String[] words = s.split("\\W+");
Run Code Online (Sandbox Code Playgroud)
这会给出如下话语: {"this","is","a","sample","sentence", "s"}
在\\W+
将匹配出现一次或多次的所有非字母字符.所以没有必要更换.您也可以检查其他模式.
Nin*_*ham 12
您可以使用BreakIterator.getWordInstance
查找字符串中的所有单词.
public static List<String> getWords(String text) {
List<String> words = new ArrayList<String>();
BreakIterator breakIterator = BreakIterator.getWordInstance();
breakIterator.setText(text);
int lastIndex = breakIterator.first();
while (BreakIterator.DONE != lastIndex) {
int firstIndex = lastIndex;
lastIndex = breakIterator.next();
if (lastIndex != BreakIterator.DONE && Character.isLetterOrDigit(text.charAt(firstIndex))) {
words.add(text.substring(firstIndex, lastIndex));
}
}
return words;
}
Run Code Online (Sandbox Code Playgroud)
测试:
public static void main(String[] args) {
System.out.println(getWords("A PT CR M0RT BOUSG SABN NTE TR/GB/(G) = RAND(MIN(XXX, YY + ABC))"));
}
Run Code Online (Sandbox Code Playgroud)
输出继电器:
[A, PT, CR, M0RT, BOUSG, SABN, NTE, TR, GB, G, RAND, MIN, XXX, YY, ABC]
Run Code Online (Sandbox Code Playgroud)
小智 7
你可以使用这个正则表达式分割你的字符串
String l = "sofia, malgré tout aimait : la laitue et le choux !" <br/>
l.split("[[ ]*|[,]*|[\\.]*|[:]*|[/]*|[!]*|[?]*|[+]*]+");
Run Code Online (Sandbox Code Playgroud)
小智 6
尝试使用以下内容:
String str = "This is a simple sentence";
String[] strgs = str.split(" ");
Run Code Online (Sandbox Code Playgroud)
这将使用空格作为分割点在字符串数组的每个索引处创建子字符串.
我能想到的最简单和最好的答案是使用java字符串上定义的以下方法 -
String[] split(String regex)
Run Code Online (Sandbox Code Playgroud)
并且只做"这是一个例句".split("").因为它需要正则表达式,所以您也可以执行更复杂的拆分,其中包括删除不需要的标点符号和其他此类字符.
归档时间: |
|
查看次数: |
227782 次 |
最近记录: |