Java:特定字符报告的数量
我制作了一个程序来计算一个短语中每个字母的数量 我希望结果文本返回的是 输入短语 “牛去市场” 有1个C('s)、3个O('s)、1个W('s)、1个G('s)、3个E('s)、1个s('s)、3个T('s)/*你的短语中有要点 我希望将结果连接成一个字符串,而不仅仅是一个多行报告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
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的教程。我也会尝试一下这个方法。谢谢你的建议!