I'm trying to write a program that will count the frequency of numbers in a phone number using ArrayList. The phone number must be input as a String. I think I have it right, but the counts are coming out messed up. Attached is my code:
import java.util.ArrayList;
import java.util.Scanner;
public class CharacterFrequency {
public static void arrayDigits(String number){
int size = number.length();
ArrayList<Integer> result = new ArrayList<Integer>(size);
for (int i = 0; i < number.length(); i++){
int element = number.charAt(i) - '0';
result.add(element);
}
countDigits(result);
}
public static void countDigits(ArrayList<Integer> array){
int size = array.size();
for (int i = 0; i < size; i++){
int position = i;
int count = 0;
for (int j = 0; j < size; j++){
int element = array.get(j);
if (position == element){
count++;
array.set(j, count);
}
}
System.out.println("The number of " + i + " is " + array.get(i));
}
}
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
System.out.println("Please enter your phone number, area code first");
String phoneNumber = keyboard.next();
arrayDigits(phoneNumber);
}
}