2013-02-19 48 views
4

這是我的簡單代碼。讀取字符串中非空白字符的數量

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個非空白字符)

我怎麼能夠顯示我的文本,並在其上打印出非空白字符的數量。

再解決

感謝所有幫助!

+0

只是看我的帖子,看看另一種方式來處理您的問題 – 2013-02-19 09:14:12

回答

2

試試這個:

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

+1,比我的解決方案:) – 2013-02-19 09:10:20

+0

對不起應該更具體越好。我怎樣才能打印出我的文本字符串,然後列出文本中非空白字符的數量。 – user2086204 2013-02-19 09:10:57

+0

更新。但是「列出非空白字符的數量」沒有任何意義。 :) – cowls 2013-02-19 09:12:53

0

做這樣的事情:

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

使用正則表達式來刪除所有空格(空格,換行,製表符),然後乾脆把字符串長度。

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

+1最佳解決方案 – 2013-02-19 09:45:08

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); 
+0

這工作完美!謝謝! – user2086204 2013-02-19 09:14:09

+0

@ user2086204很高興幫助。如果答案對您有幫助,您可以提出答案,並且標記已被接受。 – 2013-02-19 10:21:38

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

    } 

} 
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在最後,當你想退出輸入。

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