Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.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 使用Ascii字符而不是字符_Java_Char_Ascii - Fatal编程技术网

Java 使用Ascii字符而不是字符

Java 使用Ascii字符而不是字符,java,char,ascii,Java,Char,Ascii,下面有一段代码,加载到文本文件中,并对其进行分析,以显示存储在文本文件中的单词或句子中每个字母的百分比 我希望能够使用ASCII代码,而不是使用char[]字母 我不知道如何去做这件事,所以任何帮助将不胜感激 这是我目前掌握的代码: import java.io.File; import java.util.Scanner; public class testing { @SuppressWarnings("resource") public s

下面有一段代码,加载到文本文件中,并对其进行分析,以显示存储在文本文件中的单词或句子中每个字母的百分比

我希望能够使用
ASCII
代码,而不是使用
char[]
字母

我不知道如何去做这件事,所以任何帮助将不胜感激

这是我目前掌握的代码:

import java.io.File;
    import java.util.Scanner;

    public class testing {
        @SuppressWarnings("resource")
        public static void main(String[] args){ 
            Scanner scan;
                    try {
                        scan = new Scanner(new File("G:/test.txt")); //change directory to load in text file
                            } 
                        catch (Exception e) {
                            System.out.println("File was not found ");
                                return;
                  }
                  int[] count = new int[26];
                    int total = 0;
                        while(scan.hasNextLine()) {
                            String text2 = scan.nextLine();
                                System.out.println ("\n--------------------------------------------------------------------------------------------------------");
                                System.out.println ("                            Words loaded in from the file: " + text2);
                                System.out.println ("--------------------------------------------------------------------------------------------------------");
                                System.out.print("\n");
                                System.out.print("");
                    char[] letters = text2.toCharArray();
                            char[] letters1 = { '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' };
                                for(int i = 0; i < letters.length; i++) {
                                    for(int j = 0; j < 26; j++) {
                                if(letters[i] == letters1[j]) {
                          count[j]++;
                          total = total + 1;
                          break;
                        }
                      }
                    }
                                for (int i = 0; i < 26; i++){
                      System.out.format("|    "+ letters1[i]+"    ");
                  }
                    System.out.println ("\n----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------");
                  for (int i = 0; i < 26; i++){
                    float percentage = 0; 
                    if (count[i] > 0)
                        percentage = ((float) count[i]/total)*100;
                      System.out.format("|  "+percentage+ "%%   ");
                      }
                        }
            }
        }
导入java.io.File;
导入java.util.Scanner;
公共类测试{
@抑制警告(“资源”)
公共静态void main(字符串[]args){
扫描仪扫描;
试一试{
scan=new Scanner(新文件(“G:/test.txt”);//将目录更改为加载到文本文件中
} 
捕获(例外e){
System.out.println(“未找到文件”);
返回;
}
int[]计数=新的int[26];
int-total=0;
while(scan.hasNextLine()){
String text2=scan.nextLine();
System.out.println(“\n-------------------------------------------------------------------------------------------------------------------------------------------------”);
System.out.println(“从文件加载的单词:“+text2”);
System.out.println(“---------------------------------------------------------------------------------------------------------------------------------------”);
系统输出打印(“\n”);
系统输出打印(“”);
char[]字母=text2.toCharArray();
字符[]字母1={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'};
for(int i=0;i0)
百分比=((浮动)计数[i]/总数)*100;
System.out.format(“|”+百分比+“%%”);
}
}
}
}

Java中的
char
只是一个无符号16位整数,其中包含与该字符相关联的Unicode码点(至少在BMP中是这样)。Unicode是ASCII的超集,因此您的
char[]
已经包含了您正在处理的字符的ASCII值。

a
char
可以转换为
int
(0-127)(),因此很容易将其保存在数组中。您只需编辑代码中使用拉丁字母的部分,并用更大的数组替换它

这应该起作用:

int[] count = new int[128];
int total = 0;
while (scan.hasNextLine()) {
    String text2 = scan.nextLine();
    System.out.println ("\n--------------------------------------------------------------------------------------------------------");
    System.out.println ("                            Words loaded in from the file: " + text2);
    System.out.println ("--------------------------------------------------------------------------------------------------------");
    System.out.print("\n");
    System.out.print("");
    char[] letters = text2.toCharArray();
    for (int i = 0; i < letters.length; i++) {
            count[letters[i]]++;
            total++;
    }
    System.out.println("\n----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------");
    for (int i = 0; i < letters.length; i++) {
        float percentage = 0;
        if (count[1] > 0)
            percentage = ((float) count[i] / total) * 100;
        System.out.format("|  " + percentage + "%%   ");
    }
}
int[]计数=新的int[128];
int-total=0;
while(scan.hasNextLine()){
String text2=scan.nextLine();
System.out.println(“\n-------------------------------------------------------------------------------------------------------------------------------------------------”);
System.out.println(“从文件加载的单词:“+text2”);
System.out.println(“---------------------------------------------------------------------------------------------------------------------------------------”);
系统输出打印(“\n”);
系统输出打印(“”);
char[]字母=text2.toCharArray();
for(int i=0;i0)
百分比=((浮动)计数[i]/总数)*100;
System.out.format(“|”+百分比+“%%”);
}
}
我不知道下面的部分应该做什么,所以我跳过了它:

 for (int i = 0; i < 26; i++){
                      System.out.format("|    "+ letters1[i]+"    ");
}
for(int i=0;i<26;i++){
System.out.format(“|”+字母1[i]+”);
}