我想寫一個程序在java中可以計數數字範圍內的數字'1'。變量dereferancing錯誤不解決
爲例子:如果我們從範圍看1 - 20,我們將得到 1的
,2,3 .... 9, 0, ... 9,20.
這裏是我寫的代碼。
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);
}
}
我在編譯時遇到了兩個錯誤。
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類中聽說過它,但我從來沒有真正面對過它。
非常感謝。你能解釋爲什麼我在'Integet.parseInt'中出錯。 –
我需要統計數字中的所有1,例如:1011001有4個1。我不知道charAt是否可以在這裏幫忙。 –
@abhinav:'parseInt()'方法只接受'String'作爲參數,但是您通過'b [j]'提供了一個'character'。 – WickeD