Java的字数统计

a9wyjsp7  于 2022-11-20  发布在  Java
关注(0)|答案(8)|浏览(169)

如何计算字符串形式的句子的字数?我们只能使用以下字符串:for循环,if语句,whilecharAtlength() .
我写了这段代码:

public static int getWordCount()
{
  String data = "bla bla bla bla";
  int Count = 0;
  for (int i=0; i<data.length(); i++)
  {
    if (data.charAt(i) != ' ')
    Count ++;
  }
  return Count;
}

但它只计算字母而不计算单词。

smdnsysy

smdnsysy1#

这里有一个建议:计算' '的个数并加上1?
示例:

"bla bla bla bla"
    1   2   3      : 3 + 1   = 4

"hello"
                   : 0 + 1   = 1

如果你想更有趣,你可以保留一个布尔变量,比如lastWasSpace,当遇到空格时设置为true,当遇到非空格字符时设置为false。如果你只在lastWasSpace为false时递增Count,你也可以处理带有多个连续空格的字符串。

"bla    bla      bla"
                 1      2             : 2 + 1 = 3
lastWasSpace: FFFFTTTFFFFTTTTTFFFF
fslejnso

fslejnso2#

给定的代码确实会计算字母而不是单词。您可能需要将条件更改为:

if (data.charAt(i) == ' ')

这意味着,如果你找到一个空格,这将标记下一个单词的开始。而且,最后一个单词将不被计算在内,所以你应该返回Count+1而不是Count
我在这里做了几个假设:
1.单词之间将正好有一个空格。
1.不会有任何前导或尾随空格。
要考虑单词之间的多个空格,您需要稍微修改代码。检查某个字符是否为空格,而不是检查某个字符是否为非空格,以及第一个单词的前一个字符是否为空格。这也将处理前导空格和尾随空格。

i7uq4tfw

i7uq4tfw3#

public class Main {

    public static void main(String[] args) {
        String data = "This is a Test";
        int wordCount = 1;
        int charCount = 0;
        for (int i = 0; i < data.length(); i++) {
            if (data.charAt(i) == ' ') {
                wordCount++;
            } else {
                charCount++;

            }
        }
        System.out.println("wordCount = " + wordCount);
        System.out.println("charCount = " + charCount);
    }
}
avwztpqn

avwztpqn4#

String ss =  "   leading spaces in string  ";
String[] sa = ss.trim().split("\\w+");
System.out.println(sa.length);

请注意,使用trim来处理周围的空白。

nc1teljy

nc1teljy5#

使用下面的代码计算行中的单词数,

int index = 0;
            int numWords =0;
            boolean prevwhitespace = true;
            String line = "bla bla bla bla";
            while(index < line.length())
            {
                char c = line.charAt(index++);
                boolean currwhitespace = Character.isWhitespace(c);
                if(prevwhitespace && !currwhitespace)
                {
                    numWords++;
                }
                prevwhitespace= currwhitespace;
            }
           System.out.println("no. of words in the line :: " +numWords);
ffvjumwh

ffvjumwh6#

我的解决方案:

public static int getWordCount() {
  String data = "bla bla bla bla";
  String[] arr = data.split(" ");
  return arr.length;
}
ippsafx7

ippsafx77#

String s = "Aljohani Abdallah";
int counter = 1;
for (int i = 0; i < s.length() - 1; i++) {
    if (s.charAt(i) == ' ' && s.charAt(i + 1) != ' ')
        counter++;
}
if (s == " ")
    counter = 0;
System.out.println(counter);

中 的 每 一 个
上面 这 段 代码 是 计算 字符 串 中 的 单词 数 , 所以 我 首先 要 知道 的 是 字符 串 的 长度 , 然后 我们 做 if 条件 , 如果 i 在 index 中 等于 space , 同时 必须 在 space 后 的 字母 不 等于 space 的 地方 给 counter 加 1
如果 字符 串 为 空 , 则 计数 器 应为 零 。

6kkfgxo0

6kkfgxo08#

String str = "  Hello there   my name     is   Bill    ";
str = str.trim();
int count = 0;
for(int i = 0; i<str.length(); i++) {
    if(str.charAt(i) == ' ' && str.charAt(i-1) != ' ') {
        count++;
    }
}

System.out.println(count+1);

相关问题