我正在尝试编写一个使用caesar cipher编码纯文本的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());
}
}
}
请帮我找一个解决方案!
错误堆栈跟踪是:
线程中的异常&#34; main&#34; java的java.util.NoSuchElementException java.util.Scanner.throwFor(未知来源)at java.util.Scanner.next(未知来源)at Zevendesimi.zevendesim.zevendesim(zevendesim.java:33)at Zevendesimi.zevendesim.main(zevendesim.java:15)
答案 0 :(得分:1)
错误发生在output.print(" " + data.next());
,因为前一行已经使用s=data.next();
您可能想将x写入输出?