Java:特定字符报告的数量

Java:特定字符报告的数量,java,string,algorithm,loops,int,Java,String,Algorithm,Loops,Int,我制作了一个程序来计算一个短语中每个字母的数量 我希望结果文本返回的是 输入短语 “牛去市场” 有1个C('s)、3个O('s)、1个W('s)、1个G('s)、3个E('s)、1个s('s)、3个T('s)/*你的短语中有要点 我希望将结果连接成一个字符串,而不仅仅是一个多行报告 import java.util.*; public class charCount { public static void main(String[] args) { Scanner keybo

我制作了一个程序来计算一个短语中每个字母的数量

我希望结果文本返回的是

输入短语

“牛去市场”

有1个C('s)、3个O('s)、1个W('s)、1个G('s)、3个E('s)、1个s('s)、3个T('s)/*你的短语中有要点

我希望将结果连接成一个字符串,而不仅仅是一个多行报告

import java.util.*;

public class charCount 
{
  public static void main(String[] args)
  {
   Scanner keyboard = new Scanner (System.in);
    //Prompt for user entry
    System.out.println("Enter a phrase: ");
    String letterN = keyboard.nextLine();

    charCount(letterN);
  }


public static int charCount(String letterN)
{ //variable initializations 
   
    int a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z;
    a = b = c = d = e = f = g = h = i = j = k = l = m = n = o = p = q = r = s = t = u = v = w = x = y = z = 0;

    int total = 0;
    total += 1;

//for loop 
for(int countN = 0; countN < letterN.length(); countN++) {
    switch(letterN.charAt(countN)) {
     case 'a':
        a++;
        break;
     case 'b':
        b++;
        break;
     case 'c':
    c++;
    break;
     case 'd':
    d++;
    break;
     case 'e':
    e++;
    break;
     case 'f':
    f++;
    break;
     case 'g':
        g++;
        break;
     case 'h':
        h++;
        break;
     case 'i':
    i++;
    break;
     case 'j':
    j++;
    break;
     case 'k':
    k++;
    break;
     case 'l':
    l++;
    break;
     case 'm':
        m++;
        break;
     case 'n':
        n++;
        break;
     case 'o':
    o++;
    break;
     case 'p':
    p++;
    break;
     case 'q':
    q++;
    break;
     case 'r':
    r++;
    break;
     case 's':
    s++;
    break;
     case 't':
    t++;
    break;
     case 'u':
    u++;
    break;
     case 'v':
    v++;
    break;
     case 'w':
    w++;
    break;
     case 'x':
    x++;
    break;
     case 'y':
    y++;
    break;
     case 'z':
    z++;
    break;
      
    }
    
}

    //Console logs
    System.out.println("Below are the individual character counts for your string");
    System.out.println("A: " + a);
    System.out.println("B: " + b);
    System.out.println("C: " + c);
    System.out.println("D: " + d);
    System.out.println("E: " + e);
    System.out.println("F: " + f);
    System.out.println("G: " + g);
    System.out.println("H: " + h);
    System.out.println("I: " + i);
    System.out.println("J: " + j);
    System.out.println("K: " + k);
    System.out.println("L: " + l);
    System.out.println("M: " + m);
    System.out.println("N: " + n);
    System.out.println("O: " + o);
    System.out.println("P: " + p);
    System.out.println("Q: " + q);
    System.out.println("R: " + r);
    System.out.println("S: " + s);
    System.out.println("T: " + t);
    System.out.println("U: " + u);
    System.out.println("V: " + v);
    System.out.println("W: " + w); 
    System.out.println("X: " + x);
    System.out.println("Y: " + y);
    System.out.println("Z: " + z);
  
    return total;    
  }  
}
import java.util.*;
公共类字符数
{
公共静态void main(字符串[]args)
{
扫描仪键盘=新扫描仪(System.in);
//提示用户输入
System.out.println(“输入短语:”);
String letterN=键盘.nextLine();
字符数(letterN);
}
公共静态int字符数(字符串字母n)
{//变量初始化
int a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;
a=b=c=d=e=f=g=h=i=j=k=l=m=n=o=p=q=r=s=t=u=v=w=x=y=z=0;
int-total=0;
总数+=1;
//for循环
对于(int countN=0;countN
我的问题是,我当然可以连接一个System.out.println();使用int变量,但它只打印字母数。我不知道人们会提前键入什么,所以我需要我的程序来检测字母是否为true,从而返回报告中的字符和数字

我一直在寻找解决办法,但什么也找不到。我还不能完全理解这一点,坦率地说,我不知道该如何表达这一询问


提前感谢各位

使用地图存储您遇到的角色,以及他们被看到的次数。使用TreeMap意味着当您在映射上迭代时,条目按自然顺序排序

import java.util.*;

public class CharCount {
    public static void main(String[] args) {
        Scanner keyboard = new Scanner(System.in);
        //Prompt for user entry
        System.out.println("Enter a phrase: ");
        String letterN = keyboard.nextLine();

        charCount(letterN);
    }


    public static void charCount(String letterN) {
        Map<Character, Long> charMap = new TreeMap<>();
        for (char aChar : letterN.toCharArray()) {
            if (charMap.containsKey(aChar)) {
                charMap.put(aChar, charMap.get(aChar) + 1);
            }
            else {
                charMap.put(aChar, 1L);
            }
            // this if/else can be written using the ternary operator as:
            // charMap.put(aChar, charMap.containsKey(aChar) ? charMap.get(aChar) + 1 : 1L);
        }
        for (Character character : charMap.keySet()) {
            System.out.println(character + ": " + charMap.get(character));
        }
    }
}
import java.util.*;
公共类字符数{
公共静态void main(字符串[]args){
扫描仪键盘=新扫描仪(System.in);
//提示用户输入
System.out.println(“输入短语:”);
String letterN=键盘.nextLine();
字符数(letterN);
}
公共静态无效字符数(字符串字母n){
Map charMap=newtreemap();
for(char aChar:lettn.toCharArray()){
if(charMap.containsKey(aChar)){
charMap.put(aChar,charMap.get(aChar)+1);
}
否则{
charMap.put(亚喀尔,1L);
}
//该if/else可使用三元运算符写入,如下所示:
//charMap.put(亚喀尔,charMap.containsKey(亚喀尔)?charMap.get(亚喀尔)+1:1L;
}
for(字符:charMap.keySet()){
System.out.println(字符+”:“+charMap.get(字符));
}
}
}

创建一个HashMap-这将把字母作为索引保存,每次它出现时,您都应该增加计数器。如果您不熟悉JavadocforHashMap,请查看JavadocforHashMap。谢谢您的建议。我必须学会这一点。我是相当,相当新的。没问题,我们都必须从某个地方开始!希望你能很容易地掌握这个概念。有很多关于HashMaps的教程。我也会尝试一下这个方法。谢谢你的建议!