读取字符串中的非空字符数

时间:2013-02-19 09:06:35

标签: java

这是我的简单代码。

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();

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

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

我怎样才能显示我的文字,并在此打印出非空白字符的数量。

解决

再次感谢所有帮助!!

7 个答案:

答案 0 :(得分:4)

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

input.replaceAll("\\s+", "").length()

答案 1 :(得分:2)

试试这个:

System.out.println(s);
System.out.println(s.replace(" ", "").length());

答案 2 :(得分:0)

做类似的事情:

public static int countNotBlank(String s) {
    int count = 0;
    for(char c : s.toCharArray()) {
        count += c == ' ' ? 0 : 1;
    }
    return count;
}

答案 3 :(得分: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);

答案 4 :(得分: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);

    }

}

答案 5 :(得分: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.

答案 6 :(得分: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);