数値の範囲で「1」の数をカウントできるプログラムをJavaで作成しようとしています。
例: 1 から 20 の範囲から見ると、1、2,3....9、1 0、1 1 .... 1 9、20の12 個 の 1が得られます。
ここに私が書いたコードがあります。
public class Count_no_of_ones
{
public static void main( String args[] )
{
int count = 0;
for ( int i = 1; i<=20; i++ )
{
int a=i;
char b[] = a.toString().toCharArray(); //converting a number to single digit array
for ( int j = 0; j < b.length; j++ )
{
if( Integer.parseInt(b[j]) == 1 )
{
count++; // checking and counting if the element in array is 1 or not.
}
}
}
System.out.println("number of ones is : " + count);
}
}
コンパイル時に 2 つのエラーが発生します。
D:\Programs\Java>javac Count_no_of_ones.java
Count_no_of_ones.java:10: error: int cannot be dereferenced
char b[] = a.toString().toCharArray(); //converting a number to single digit array
^
Count_no_of_ones.java:14: error: no suitable method found for parseInt(char)
if( Integer.parseInt(b[j]) == 1 )
^
method Integer.parseInt(String) is not applicable
(actual argument char cannot be converted to String by method invocation conversion)
method Integer.parseInt(String,int) is not applicable
(actual and formal argument lists differ in length)
2 errors
D:\Programs\Java>
コードで何が間違っていたのか説明してもらえますか。私は一度も問題を抱えたことはなくInteger.parseInt
、この逆参照の問題は私にとって新しいものです。awt の授業で聞いたばかりだけど、実際に直面したことはない。