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); } }