2017-07-30 23 views
3

私はchar配列を持っています(サイズは4です)。今、私はこの文字列の桁数を計算する必要があり など、Javaの整数文字列の桁数を数えます。

String str = String.valueOf(cf); // where cf is the char array of size 4. 

をこの文字列は01または11または001または011を含めることができます。私が使用して文字列に変換しています。しかし、私は桁数を計算するたびに(好ましくはJavaで)、結果として4を表示します(サイズ4の可能性があります)。どのように計算するのですか?入力文字列に応じた数字の?

例:001が入力の場合、o/pに3を指定する必要があります。ここで

は、コーディングの一部です:

static long solve(int k, long n) 
    { 

    // System.out.println("Entered Solve function"); 
    char[] c = new char[4]; 

    long sum = 0; 
    char[] cf = {}; 

    for(long i=2;i<=n;i++) 
    { 

     cf = fromDeci(c, k, i); 
     String str = String.valueOf(cf); 


     //System.out.println(snew); 
     sum = sum + str.length() ; 
    } 

    return sum; 
} 
+4

***しかし、私は毎回計算する... ***あなたはどうしているのですか?そのコードを投稿してください –

+2

なぜ 'str.length()'が不十分なのですか? –

+0

str.size()はすべての文字の数を返しますが、数字だけが必要です。文字は数字よりもはるかに大きくなる可能性があります。 –

答えて

1

は、正規表現と非常に簡単です:

String test = "a23sf1"; 
int count = 0; 
Pattern pattern = Pattern.compile("[0-9]"); 
Matcher matcher = pattern.matcher(test); 
while (matcher.find()) { 
    count++; 
} 
System.out.println(count); 
+0

ありがとう、たくさんの男!今は正しく動作しています。 :) –

+1

@AshishRamtri私たちが助けてくれれば、回答はうまくいくはずです:-) –

+1

私は答えをupvotingしようとしましたが、これを示しています: "フィードバックありがとう! 15評判は記録されていますが、公開されたポストスコアは変更されません。 " –

1

あなたは文字が数字の文字に対する単純な比較によって数字であるかどうかを確認することができます。 が

のために(StringUtilsを参照してください):あなたは、Apache Commonsのを使用することができ、

String s = "101"; 
int nb = Math.toIntExact(s.chars()      // convert to IntStream 
          .mapToObj(i -> (char)i)  // convert to char 
          .filter(ch -> isDigit(ch)) // keep the ones which are digits 
          .count());     // count how any they are 
+0

ありがとう、たくさんの男!なぜこのことが私の心に浮かび上がらなかったのか分かりません。今は正しく動作しています。あなたはただ多くの時間を節約しました。 :) –

2

あなたはONE-LINEでJava 8、溶液からのストリームAPIを使用することができます例: StringUtils.getDigits("abc56ju20").size()

それはあなたに4を与えます。

0

そうでない場合:

private int countDigits(char[] cf) { 
    int digitCt = 0; 
    for (char c : cf) { 
     if ((c >= '0') && (c <= '9')) digitCt++; 
    } 
    return digitCt; 
} 
関連する問題