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]);