5

这是我的简单代码。

导入 java.util.Scanner;

public class WordLines
{
    public static void main(String[] args) 
    {
        Scanner myScan = new Scanner(System.in);
        String s;

        System.out.println("Enter text from keyboard");

        s = myScan.nextLine();

        System.out.println("Here is what you entered: ");
        System.out.println(s.replace(" ", "\n"));
    }
}

如果我要输入一个句子,例如“早安世界!” (此行中有 17 个非空白字符)

我如何能够显示我的文本并在此之上打印出存在的非空白字符的数量。

解决了

再次感谢所有帮助!

4

7 回答 7

7

使用正则表达式删除所有空格(空格、换行符、制表符),然后简单地获取字符串长度。

input.replaceAll("\\s+", "").length()
于 2013-02-19T09:09:49.423 回答
2

尝试这个:

System.out.println(s);
System.out.println(s.replace(" ", "").length());
于 2013-02-19T09:08:40.587 回答
0

如果您只想知道非空白字符的数量,希望这会对您有所帮助。

    String aString="Good Morning World!";
    int count=0;
    for(int i=0;i<aString.length();i++){
        char c = aString.charAt(i);
        if(c==' ') continue;
        count++;
    }
    System.out.println("Total Length is:"+count);
于 2013-02-19T10:11:12.957 回答
0
import java.util.Scanner;


public class WordLines
{

  public static void main(String[] args) {

    Scanner myScan = new Scanner(System.in);
    String s="";

    System.out.println("Enter text from keyboard");
    while(myScan.hasNextLine()) s = s+myScan.nextLine();

    System.out.println("Here is what you entered: ");
    System.out.println(s.replace(" ", "\n"));

  }

}

当您想退出输入时,您最后需要使用 CTRL+C。

于 2013-02-19T09:20:00.430 回答
0

执行以下操作:

public static int countNotBlank(String s) {
    int count = 0;
    for(char c : s.toCharArray()) {
        count += c == ' ' ? 0 : 1;
    }
    return count;
}
于 2013-02-19T09:09:45.137 回答
0

您可以从字符串计算非空白字符,如下所示:

int non_blank_counter = 0;
//your code to read String
for(int i=0;i<s.length();i++){
// .. inside a loop ..//
if ( myStr.charAt( i ) != ' ' )
    non_blank_counter++;
}
System.out.println("number of non blank characters are "+non_blank_counter);
于 2013-02-19T09:10:31.700 回答
0

另一种处理方式

import java.util.Scanner;

public class WordLines {

    public static void main(String[] args) {

        Scanner myScan = new Scanner(System.in);
        String s;

        System.out.println("Enter text from keyboard");

        s = myScan.nextLine();

        String[] splitter = s.split(" ");

        int counter = 0;
        for(String string : splitter) {
            counter += string.length();
        }

        System.out.println("Here is what you entered: ");
        System.out.println(counter);

    }

}
于 2013-02-19T09:12:04.093 回答