【问题标题】:Caesar Cipher using files使用文件的凯撒密码
【发布时间】:2016-11-18 10:15:09
【问题描述】:

我正在尝试编写一个使用凯撒密码对纯文本进行编码的 java 程序。我有一个包含纯文本的文件和另一个应该放置编码文本的文件。我不知道是什么问题,但我得到了错误:线程“主”java.util.NoSuchElementException 中的异常。请帮帮我!

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

  public class zevendesim {

  public static void main(String[] args)
        throws FileNotFoundException {
    Scanner input=new Scanner(new File("C:\\erida\\t.txt"));
    PrintStream output=new PrintStream(new File("C:\\erida\\c.txt"));
    String text=input.nextLine();
    zevendesim(text, output);
}
public static void zevendesim(String text, PrintStream output)
{

    int i=0;
    String s;
    Scanner data = new Scanner(text);
    while (data.hasNext()) {
        s=data.next();
        if (s.charAt(i) >= 97 && s.charAt(i)<= 120)
        {
            int x = s.charAt(i) - 97;
            x = (x + 2) % 26;
            if (x < 0) 
              x += 26; 
            // = (char) (x + 32);
        }
        output.print(" " + data.next());
    }

}
}

请帮我找到解决办法!

错误堆栈跟踪是:

线程“main”中的异常 java.util.NoSuchElementException at
java.util.Scanner.throwFor(Unknown Source) at java.util.Scanner.next(未知来源)在 Zevendesimi.zevendesim.zevendesim(zevendesim.java:33) 在 Zevendesim.zevendesim.main(zevendesim.java:15)

【问题讨论】:

  • 至少发布更详细的错误堆栈跟踪。
  • Zevendesimi.zevendesim.zevendesim( zevendesim.java:33) 在 Zevendesimi.zevendesim.main(zevendesim.java:15)
  • 添加到问题
  • 为什么要使用 Scanner 来遍历字符串?只需使用 For。
  • 好的。我会试试的

标签: java file java.util.scanner


【解决方案1】:

错误发生在output.print(" " + data.next());,因为最后一个令牌已经在前面几行用s=data.next();读取了

您可能想将 x 写入输出?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-28
    • 1970-01-01
    • 2014-03-07
    • 2020-05-31
    • 2014-02-06
    • 1970-01-01
    相关资源
    最近更新 更多