Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 打印唯一字符及其出现_Java_Arrays_Char - Fatal编程技术网

Java 打印唯一字符及其出现

Java 打印唯一字符及其出现,java,arrays,char,Java,Arrays,Char,我对java和编程也是新手。我分配了一个任务来计算唯一字符的出现次数。我只能用 数组。我做了流动代码- public class InsertChar{ public static void main(String[] args){ int[] charArray = new int[1000]; char[] testCharArray = {'a', 'b', 'c', 'x', 'a', 'd', 'c', 'x', 'a', 'd', 'a'}

我对
java
和编程也是新手。我分配了一个任务来计算唯一字符的出现次数。我只能用 数组。我做了流动代码-

public class InsertChar{

    public static void main(String[] args){

        int[] charArray = new int[1000];
        char[] testCharArray = {'a', 'b', 'c', 'x', 'a', 'd', 'c', 'x', 'a', 'd', 'a'};

        for(int each : testCharArray){

            if(charArray[each]==0){
                charArray[each]=1;
            }else{
                ++charArray[each];
            }

        }

        for(int i=0; i<1000; i++){
            if(charArray[i]!=0){
                System.out.println( i +": "+ charArray[i]);
            }
        }
    }

}  
但它给了我以下的结果-

97: 4
98: 1
99: 2
100: 2
120: 2  

如何修复此问题?

I
int
,因此您正在打印每个
字符的整数值。您必须将其强制转换为
char
,才能看到字符

改变

System.out.println( i +": "+ charArray[i]);


您正在将索引打印为
int
。打印前,请尝试将其强制转换为
字符

for (int i=0; i<1000; i++){
    if (charArray[i]!=0){
        System.out.println( ((char) i) +": "+ charArray[i]);
    }
}

for(inti=0;i您的
testCharArray
是一个int数组。您在其中存储了char。因此您必须将字符强制转换为int。 您必须在最后一个for循环中进行更改-

for(int i=0; i<1000; i++){
    if(charArray[i]!=0){
        System.out.println( (char)i +": "+ charArray[i]); //cast int to char.
    }
} 

for(int i=0;i您的程序正在打印字符的
ascii
表示形式。您只需将
acsii
数字转换为字符即可

public class InsertChar{

    public static void main(String[] args){

        int[] charArray = new int[1000];
        char[] testCharArray = {'a', 'b', 'c', 'x', 'a', 'd', 'c', 'x', 'a', 'd', 'a'};

        for(int each : testCharArray){

            if(charArray[each]==0){
                charArray[each]=1;
            }else{
                ++charArray[each];
            }

        }

        for(int i=0; i<1000; i++){
            if(charArray[i]!=0){
                System.out.println( **(char)**i +": "+ charArray[i]);
            }
        }
    }

}  
公共类InsertChar{
公共静态void main(字符串[]args){
int[]charArray=新int[1000];
char[]testCharArray={'a','b','c','x','a','d','c','x','a','d','a'};
for(int-each:testCharArray){
如果(字符[每个]==0){
charArray[每个]=1;
}否则{
++查拉雷[每个];
}
}

对于(int i=0;i您正在打印每个
char
ASCII
表示形式。您必须通过强制转换-

for(int i=0; i<1000; i++){
    if(charArray[i]!=0){
        System.out.println( (char)i +": "+ charArray[i]); //cast int to char.
    }
} 
public class InsertChar{

    public static void main(String[] args){

        int[] charArray = new int[1000];
        char[] testCharArray = {'a', 'b', 'c', 'x', 'a', 'd', 'c', 'x', 'a', 'd', 'a'};

        for(int each : testCharArray){

            if(charArray[each]==0){
                charArray[each]=1;
            }else{
                ++charArray[each];
            }

        }

        for(int i=0; i<1000; i++){
            if(charArray[i]!=0){
                System.out.println( **(char)**i +": "+ charArray[i]);
            }
        }
    }

}  
System.out.println( (char)i +": "+ charArray[i]);