gpt4 book ai didi

java - 计算字符串中数字出现的次数

转载 作者:行者123 更新时间:2023-11-30 07:12:02 26 4
gpt4 key购买 nike

我有一个实验,涉及计算字符串中的数字位数和数字字母。我实际上从我的 java 书中得到了计算字母的方法,所以我仍然不太确定它到底是如何工作的,但是当我尝试重新创建该方法时,但对于实验室的数字部分,输出是错误的。如果有人能指出正确的方向,我将不胜感激。

正确的输出应该是:

1800朵花

e出现1次

f出现了1次

l出现了1次

o出现1次

r出现了1次

s出现1次

w出现了1次

0出现了2次

1出现1次

8出现1次

构建成功(总时间:6 秒)

我得到的输出是:输入字符串:

1800朵花

e出现1次

f出现了1次

l出现了1次

o出现1次

r出现了1次

s出现1次

w出现了1次

0出现1次

1出现1次

2出现1次

3出现1次

4出现0次

5出现0次

6出现0次

7出现0次

8出现0次

9出现0次

构建成功(总时间:6 秒) 公开课 Lab12 {

public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String s = new String("");
System.out.println("Enter a string: ");
s = input.nextLine();
int[] counts = countletters(s.toLowerCase());
for (int i =0; i < counts.length; i++){
if (counts[i] != 0){
System.out.println((char)('a' + i) + " appears " + counts[i] + ((counts[i] == 1? " time": " times")));
}
}
System.out.println("");
int[] counts2 = countDigits(s);
for (int i = 0; i <counts2.length; i++){

System.out.println(i + " appears " + counts2[i] + " times " );

}


}
public static int[] countDigits(String s){
int[] counts = new int[10];
for (int i = 0; i <s.length(); i++){
if (Character.isDigit(s.charAt(i))){
counts[(int)s.charAt(i - '0')]++;
}
}
return counts;
}
public static int[] countletters(String s){

int[] counts = new int[26];

for(int i = 0; i < s.length(); i++){

if (Character.isLetter(s.charAt(i))){
counts[(s.charAt(i) - 'a')]++;
}

}
return counts;

最佳答案

问题出在这一行:

counts[i]++;

应该是:

counts[(int)s.charAt(i) - '0']++;

关于java - 计算字符串中数字出现的次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20647405/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com