2012-03-27 59 views
1

有人可以告訴我,我怎麼做一個if-子句,說我多久我在這個字符串中使用十進制分隔符。如何統計在一個字符串中的字符發生在java

即:1234,56,789

+0

你想計算','的出現嗎? – 2012-03-27 10:39:33

+0

你的意思是你想要計算字符串中'''的出現次數嗎? – beerbajay 2012-03-27 10:40:17

+0

該字符串中的小數點分隔符在哪裏? – 2012-03-27 10:41:19

回答

5

簡單:

String number = "1234,56,789"; 
int count = 0; 
for (int i = 0; i < number.length(); i++) 
    if (number.charAt(i) == ',') 
     count++; 
// count holds the number of ',' found 
+1

謝謝你的快速答案。這對我來說很好:) – FabianG 2012-03-27 10:47:22

+1

我在下面的API和它的一個方便的工具中使用了CountMatches方法。 http://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/StringUtils.html – 2014-07-21 05:37:42

9
String number = "1234,56,789"; 
int commaCount = number.replaceAll("[^,]*", "").length(); 
+0

這是一個很好的解決方案。 – 2014-09-11 13:41:53

1

你不需要任何如果子句,只需使用

String s = "1234,56,78"; 
System.out.println(s.split(",").length); 
4

我覺得simpliest方式將執行String.split(",")並計算數組的大小。

所以指令預訂購這個樣子:

String s = "1234,56,789"; 
int numberofComma = s.split(",").length; 

的問候,埃裏克

2

如果可以使用非if子句,你可以這樣做:

int count = number.split(",").length 
1
public class OccurenceOfChar { 

public static void main(String[] args) throws Exception { 
    // TODO Auto-generated method stub 

    BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); 
    System.out.println("Enter any word"); 
    String s=br.readLine(); 

    char ch[]=s.toCharArray(); 
    Map map=new HashMap(); 


    for(int i=0;i<ch.length;i++) 
    { 
     int count=0; 
     for(int j=0;j<ch.length;j++) 
     { 
      if(ch[i]==ch[j]) 
       count++; 
     } 
    map.put(ch[i], count); 


    } 
    Iterator it=map.entrySet().iterator(); 
    while(it.hasNext()) 
    { 
     Map.Entry pairs=(Map.Entry)it.next(); 
     System.out.println("count of "+pairs.getKey() + " = " + pairs.getValue()); 
    } 





    } 
} 
相關問題