【发布时间】:2016-09-06 14:25:04
【问题描述】:
项目是编码解码: abcdefghijklmnopqrstuvwxyz kngcadsxbvfhjtiumylzqropwe 首先,程序应该要求用户输入上面的密钥字符串。 然后程序将读取文件并将其编码内容输出到控制台。大写字母的映射方式与上面的小写字母相同,但保持大写。例如,使用上面的键,每个“A”都变成了“K” ' 编码文本时。数字和其他字符未编码并保持不变。 例如,使用上面的映射,在对文本进行编码时,每个 'a' 都变成了 'k',并且每个 解码时'k'变成'a'。
运行 1: 输入编码密钥:maxnrslkbpwfzjidouetchgvyq 输入文件名:sampleInput.txt ************** 编码内容 ************** Grfxizr ti XE 20A! Xizdctrue mur liin mt siffigbjl bjetucxtbije,行为 jit mt urmnbjl yicu zbjn。 bs yic mctizmtr m zree, yic lrt mj mctizmtrn zree。
再见!
我收到错误:Exception in thread "main" java.lang.NullPointerException
在线char outputFile= hmap.get(FileChar);
C:\Users.....\AppData\Local\NetBeans\Cache\8.1\executor-sn-ps\run.xml:53:Java 返回:1
我想将输入文件分配给哈希映射获取值。
是不是因为我没有对hashmap中除了[a-z]之外的其他字符做key值,比如“,!”等,那么它没有这个key值然后抛出null异常?
这是code 的一些hashmap :
HashMap<Character,Character>hmap = new HashMap<>();
for(int j =0; j<26; j++){
if(Character.isUpperCase(originalResult.charAt(j))){
hmap.put(originalResult.charAt(j),Character.toUpperCase(inputResult.charAt(j)));
}
else{
hmap.put(originalResult.charAt(j),inputResult.charAt(j));
}
}
这是我认为问题所在的一些代码:
while((Fileline =bin.readLine())!=null )
{
char[] FileArray = Fileline.toCharArray();
for(int j=0;j<Fileline.length();j++ )
{
FileChar =FileArray[j];
char outputFile= hmap.get(FileChar); ////here is the problem
}
System.out.println( String.valueOf(outputFile));
}
我认为问题可能是我打印时的字符:
while((Fileline =bin.readLine())!=null ){
char[] FileArray = Fileline.toCharArray();
for(int j=0;j<Fileline.length();j++ ){
FileChar =FileArray[j];
s = new String(String.valueOf(FileChar));
}
System.out.println(s);
结果什么都没有:
是的
.
但是当我在循环中打印时,它看起来每一行只有一个字母,而且很多行:
while((Fileline =bin.readLine())!=null ){
char[] FileArray = Fileline.toCharArray();
for(int j=0;j<Fileline.length();j++ ){
FileChar =FileArray[j];
s = new String(String.valueOf(FileChar));
System.out.println(s);
}
【问题讨论】:
-
对变量和方法使用Java中的驼峰式大小写(fileChar而不是FileChar),看起来FileChar是对静态类的引用。如果是这样,那就是问题的开始。
-
我已将第一个字母的大写改为小写,我认为问题可能出在 valueof(char) 上?我不确定,我不知道如何解决
-
发布完整的堆栈跟踪(错误),而不仅仅是指针异常
-
Main.main(Main.java:140) C:\Users\.......\AppData\Local\NetBeans\Cache 处的线程“main”java.lang.NullPointerException 中的异常\8.1\executor-sn-ps\run.xml:53:Java 返回:1 这是
构建失败(总时间:7 秒)
标签: java exception null hashmap char