【发布时间】:2018-10-15 17:01:18
【问题描述】:
我的任务是编写一个程序来计算一个数字在电话号码中重复的次数(仅限数字)。这就是我目前所拥有的及其输出。
import java.util.Scanner;
public class PhoneNumber {
public static void main(String[] args) {
Scanner key= new Scanner(System.in);
String number;
int[] phoneArray = new int[10];
int one = 0;
System.out.println("Enter your phone number in the format (xxx)xxx-xxxx:");
number = key.nextLine();
for(int i = 0; i < phoneArray.length; i++) {
System.out.println("Count of " + i + "'s: " + number.charAt(i));
}
}
}
输出:
Enter your phone number in the format (xxx)xxx-xxxx:
(864)728-1638
Count of 0's: (
Count of 1's: 8
Count of 2's: 6
Count of 3's: 4
Count of 4's: )
Count of 5's: 7
Count of 6's: 2
Count of 7's: 8
Count of 8's: -
Count of 9's: 1
我不确定自己做错了什么。
【问题讨论】:
-
嗯,你从来没有真正计算过任何东西。
phoneArray保持不变。 -
对于初学者来说,您似乎并没有真正计算数字。您遇到了什么具体问题?
-
你没有计算任何东西,你只是打印数组的前 10 个元素,开始循环数组,就像你正在做的那样,你可以有另一个数组来存储所有出现的每个数字,并根据循环中的当前数字,您只需在该位置增加计数数组,最后您只需要循环计数数组并显示存储的数字
-
同样重要的是要指出
charAt()返回一个 int,它返回字符的 ASCII 码,而不是像 1、2、3 等这样的数字。@987654325 的 ASCII 码@ 是 49 iirc。您必须将 ASCII 代码转换为您想要的数字,并且您还必须检查不是数字的代码(例如)和(和-)。