Occurrences of eac digit in a string

I having problem getting my program to solve. I am suppose to write a program that how many times a digit appear in a string and have to use the header  public static int[] count(String s).
public static void main(String[] args) {
		
	String s = JOptionPane.showInputDialog("Enter a string:");
	int[] counts  = countDigit(s.intern()); 
	
	String output = "";
	for(int i = 0; i < counts.length; i++)
	{
		if (counts[i] !=0)
			output += (char)('1' + i) + " appears " + counts[i] + ((counts[i] == 1) ? " time\n" : " times\n");
		}
	JOptionPane.showMessageDialog(null, output);
	}
	
	public static int[] countDigit(String s)
	{
	   int[] counts = new int[26];
	    for(int i = 0; i< s.length(); i++)
		{
		if (Character.isDigit(s.codePointCount(0, 26)))
		 counts[s.codePointAt(i)]++;
		}
		
		return counts;
	}

Open in new window

juicyfruit82Asked:
Who is Participating?
 
Ajay-SinghCommented:
You can try using this:
 public static int[] countDigit(String s)
	{
	   int[] counts = new int[26];
	    for(int i = 0; i< s.length(); i++)
		{
		if (Character.isDigit(s.charAt(i)))
		 counts[s.charAt(i)-'0']++;
		}
		
		return counts;
	}

Open in new window

0
 
contactkarthiCommented:
>> output += (char)('1' + i) + " appears " + counts[i] + ((counts[i] == 1) ? " time\n" : " times\n");
               
output += (char)('0' + i) + " appears " + counts[i] + ((counts[i] == 1) ? " time\n" : " times\n");

and the method should be
public static int[] countDigit(String s)
	        {
	           int[] counts = new int[10];
	            for(int i = 0; i< s.length(); i++)
	                {
	                if (Character.isDigit(s.charAt(i)))	                
	                 counts[s.charAt(i)-48]++;
	                }
 
	                return counts;
        }

Open in new window

0
 
the_b1ackfoxCIOCommented:
import javax.swing.*;

public class tests {

      /**
       * @param args
       */
      public static void main(String[] args) {
            
            String s = JOptionPane.showInputDialog("Enter a string:");
            int[] counts  = countDigit(s);
            
            String output = "";
            for(int i = 0; i < counts.length; i++)
            {
                  if (counts[i] !=0)
                        output += (char)('1' + i) + " appears " + counts[i] + ((counts[i] == 1) ? " time\n" : " times\n");
                  }
            JOptionPane.showMessageDialog(null, output);
            }
            
            public static int[] countDigit(String s)
            {
                String Temp="";
                for(int ix = 0; ix< s.length(); ix++)
                  {
                      // OK ... lets filter out the crap we aren't interested in
                      if(Character.isDigit(s.charAt(ix))){
                            
                      Temp+=s.charAt(ix);      
                      }
                      //System.out.print(Temp);
                  }
                  //since there are only 10 digits to worry about
                //lets create an array to hold the data
                int[] tizzl=new int [10];
               
                for(int iy = 0; iy< Temp.length(); iy++)
                  {
                      //so now we just sort it all out...
                      int tmpnum=0;
                      tmpnum=Integer.parseInt(""+Temp.charAt(iy));
                      tizzl[tmpnum-1]++;
                  }
                  
                  return (tizzl);
            }


}


Clean it up and I think it does what you want it to do...  I tested it with eclipse
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.