Java 如何打印阵列?

Java 如何打印阵列?,java,arrays,string,frequency,Java,Arrays,String,Frequency,我的练习差不多完成了,只是我似乎不知道如何显示数组。实践是从用户处获取一组长度为10的字符串,并检查字符串中是否有与长度为10的数组相对应的数字0-9 这就是我目前所拥有的 import java.util.*; public class CharacterFrequency { public static void main(String[] args) { Scanner keyboard = new Scanner(System.in); int telNumber[]

我的练习差不多完成了,只是我似乎不知道如何显示数组。实践是从用户处获取一组长度为10的字符串,并检查字符串中是否有与长度为10的数组相对应的数字0-9

这就是我目前所拥有的

import java.util.*;

public class CharacterFrequency {

public static void main(String[] args) {
    Scanner keyboard = new Scanner(System.in);
    int telNumber[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};

    System.out.print("Give me a word of 10 characters. "
            + "\nI will tell you if it contains any numbers, and how many: ");
    String word = keyboard.nextLine();
    int length = word.length();
    if (length < 10 || length > 10) {
        System.out.println("Wrong length, you have entered an invalid word.");
        System.exit(0);
    } else {


        for (int index = 0; index < word.length() - 1; index++) {
            char ch = word.charAt(index);
            if ('0' == ch) {
                telNumber[0]++;
            } else if ('1' == ch) {
                telNumber[1]++;
            } else if ('2' == ch){
                telNumber[2]++;
            } else if ('3' == ch){
                telNumber[3]++;
        }   else if ('4' == ch){
                telNumber[4]++;
        }else if ('5' == ch){
                telNumber[5]++;
        }else if ('6' == ch){
                telNumber[6]++;
        } else if ('7' == ch){
                telNumber[7]++;
        } else if ('8' == ch){
                telNumber[8]++;
        }else if ('9' == ch){
                telNumber[9]++;
        } else {
        System.out.println("\nWrong length, you have entered an invalid word.");
        System.exit(0);
    }
        }
        System.out.println();

    }
}
}
import java.util.*;
公共类字符频率{
公共静态void main(字符串[]args){
扫描仪键盘=新扫描仪(System.in);
int telNumber[]={0,1,2,3,4,5,6,7,8,9};
System.out.print(“给我一个10个字符的单词。”
+“\n我将告诉您它是否包含任何数字,以及有多少:”;
字符串字=键盘.nextLine();
int length=word.length();
如果(长度<10 | |长度>10){
System.out.println(“错误的长度,您输入了无效的单词。”);
系统出口(0);
}否则{
for(int index=0;index
我不知道如何像这样打印输出:

0的计数为(字符串中0的数目)

1的计数为(字符串中1的数目)

2的计数为(字符串中的2个数)

3的计数为(字符串中的3个数)

4的计数为(字符串中的4个数)
等等。

打印
int
数组最简单的方法通常是

您的
telNumber
声明应该更像

int telNumber[] = new int[10]; // {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
您的声明为每个元素提供了一个等于其索引的初始计数(我相当确定您希望它们为零)。然后,要获得您所要求的格式(带有
for
循环)可能如下所示

for (int i = 0; i < telNumber.length; i++) {
  System.out.printf("Count of %d is %d%n", i, telNumber[i]);
}
publicstaticvoidprintintarray(int[]数组){
系统输出打印(“{”);
for(int i=0;i
需要更改的内容很少:

1) telNumber阵列初始化,另一个选项是:

int telNumber[] = new int[10];
2) 根据字符值的ascii值,通过一次赋值避免所有10个if,使用:

telNumber[ch - '0'] ++;
更多参考:

3) 遍历数组并打印它

for (int i = 0; i < telNumber.length; i++) {
                  System.out.printf("Count of %d is %d%n", i, telNumber[i]);
                }
for(int i=0;i
4) 将循环修复为:

for (int index = 0; index < word.length() ; index++)
for(int index=0;index
因为在您的代码中,它不计算输入中的最后一个字符

固定代码:

Scanner keyboard = new Scanner(System.in);
        int telNumber[] = { 0,0,0,0,0,0,0,0,0,0};

        System.out
                .print("Give me a word of 10 characters. "
                        + "\nI will tell you if it contains any numbers, and how many: ");
        String word = keyboard.nextLine();
        int length = word.length();
        if (length < 10 || length > 10) {
            System.out
                    .println("Wrong length, you have entered an invalid word.");
            System.exit(0);
        } else {

            for (int index = 0; index < word.length() ; index++) {
                char ch = word.charAt(index);
                if (ch >= '0' && ch <= '9') {
                telNumber[ch - '0'] ++;
                }
                else {
                  System.out.println("\nWrong length, you have entered an invalid word.");
                  System.exit(0);
                }
            }
            System.out.println();

        }
        for (int i = 0; i < telNumber.length; i++) {
              System.out.printf("Count of %d is %d%n", i, telNumber[i]);
            }
    }
扫描仪键盘=新扫描仪(System.in);
int telNumber[]={0,0,0,0,0,0,0,0,0};
系统输出
.print(“给我一个10个字符的单词。”
+“\n我将告诉您它是否包含任何数字,以及有多少:”;
字符串字=键盘.nextLine();
int length=word.length();
如果(长度<10 | |长度>10){
系统输出
.println(“长度错误,您输入的单词无效。”);
系统出口(0);
}否则{
for(int index=0;index='0'&&ch
for (int i = 0; i < telNumber.length; i++) {
                  System.out.printf("Count of %d is %d%n", i, telNumber[i]);
                }
for (int index = 0; index < word.length() ; index++)
Scanner keyboard = new Scanner(System.in);
        int telNumber[] = { 0,0,0,0,0,0,0,0,0,0};

        System.out
                .print("Give me a word of 10 characters. "
                        + "\nI will tell you if it contains any numbers, and how many: ");
        String word = keyboard.nextLine();
        int length = word.length();
        if (length < 10 || length > 10) {
            System.out
                    .println("Wrong length, you have entered an invalid word.");
            System.exit(0);
        } else {

            for (int index = 0; index < word.length() ; index++) {
                char ch = word.charAt(index);
                if (ch >= '0' && ch <= '9') {
                telNumber[ch - '0'] ++;
                }
                else {
                  System.out.println("\nWrong length, you have entered an invalid word.");
                  System.exit(0);
                }
            }
            System.out.println();

        }
        for (int i = 0; i < telNumber.length; i++) {
              System.out.printf("Count of %d is %d%n", i, telNumber[i]);
            }
    }