Java:如何将不包含空格的字符表示为单词?

时间:2019-02-28 16:57:31

标签: java

如果我有一个包含随机字符的文件,例如:

sdo8kd      oko   ala la654

"sdo8kd""oko""ala""la654"将被视为单词。

我该如何特别使用Character.isWhitespace(c)方法来表示不包含空格字符的单词,其中c是要检查的字符是否为空格。

4 个答案:

答案 0 :(得分:2)

您可以使用split(regex)中的String并将其放入array中,然后使用它进行所需的操作。

String sentence = "sdo8kd      oko   ala la654";

String[] words = sentence.split("\\s+");

for(String word : words){ 

    System.out.println("'" + word + "'"); //'sdo8kd', 'oko', 'ala', 'la654'

} 

System.out.println(words.length); //4

答案 1 :(得分:0)

尝试此正则表达式“ [a-zA-Z0-9] +”

boolean isAlphaNumeric = s.matches(“ [a-zA-Z0-9] +”);

a-zA-Z所有拉丁字母(小写和大写)

0-9全部数字

[a-zA-Z0-9] +括弧内至少1个或多个字符。

答案 2 :(得分:0)

如果您希望拆分单词,即使它们之间有任意数量的空格。 您可以使用

 "sdo8kd      oko   ala la654".split(" +");

这将返回String [],其值为“ sdo8kd”,“ oko”,“ ala”和“ la654”

答案 3 :(得分:-1)

尝试此正则表达式。它将基本上用一个空格替换多个空格,并使用trim()删除尾随和前导空格:

word = word.replaceAll("\\s+", " ").trim();

使用Character.isWhitespace()检查每个字符不是很有效,但是如果要这样做,可以使用以下方法将字符串拆分为一个数组:

String [] words = word.split("");

并迭代单词的每个字符,并查看当前迭代元素之前的元素是否为空格。如果没有,则可以将当前字符附加到StringBuilder中。

StringBuilder builder = new StringBuilder();
for(int i = 1; i < words.length; i++){
    if(Character.isWhitespace(words[i].charAt(0)) && Character.isWhitespace(words[i-1].charAt(0)){
          //DO NOTHING
    }else{
          builder.append(words[i]);
    }
}
word = builder.toString();