而我正在做一个简单的密码程序。我遇到了这个错误
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at java.lang.String.charAt(Unknown Source)
at Caesar.main(Caesar.java:27)
嗯,我不太清楚原因是什么。我需要一些老手的帮助@@下面是我的代码。
import java.util.Scanner;
import java.io.FileReader;
import java.io.IOException;
import java.io.PrintWriter;
public class Caesar {
public static void main(String[] args){
String from = "abcdefghijklmnopqrstuvwxyz";
String to = "feathrzyxwvusqponmlkjigdcb";
Scanner console = new Scanner(System.in);
System.out.print("Input file: ");
String inputFileName = console.next();
System.out.print("Output file: ");
String outputFileName = console.next();
try{
FileReader reader = new FileReader("C:/"+inputFileName+".txt");
Scanner in = new Scanner(reader);
PrintWriter out = new PrintWriter("C:/"+outputFileName+".txt");
while (in.hasNextLine()){
String line = in.nextLine();
String outPutText = "";
for (int i = 0; i < line.length(); i++){
char c = to.charAt(from.indexOf(line.charAt(i)));
outPutText += c;
}
System.out.println("Plaintext: " + line);
System.out.println("Ciphertext: " + outPutText);
out.println(outPutText);
}
System.out.println("Processing file complete");
out.close();
}
catch (IOException exception){
System.out.println("Error processing file:" + exception);
}
}
}
这是您在for循环
中的分配:-
char c = to.charAt(from.indexOf(line.charAt(i)));
这里,inindexof
在from
字符串中找不到char
时返回-1
,然后它将引发StringIndexOutOfboundsException
。
您可以在获取角色之前添加一个检查:-
int index = from.indexOf(line.charAt(i));
if (index >= 0) {
char c = to.charAt(index);
outPutText += c;
}
或:-
char ch = line.charAt(i);
if (from.contains(ch)) {
char c = to.charAt(from.indexOf(ch));
outPutText += c;
}
以下代码禁止使用403,尽管“https://jsonplaceholder.typicode.com/posts/1”在postman中有效 错误: 如果有人能建议,我需要在代码中添加什么
我试图部署我的Flask应用程序与,但我得到一个错误如下; 错误:给出了双重要求:setuptools(已在setuptools==52.0.0.post20210125中,name='setuptools')警告:您正在使用pip版本20.2。3.但是,版本21.1。有3个。您应该考虑通过“/用户/ YoNoSink”/文档/ JBRY-Req-LoalAl2/JBRY-RexApIIL2/DO
我在观看youtube ReactJS PHP基于令牌的Restful API用户身份验证时遇到了获取用户数据的问题,我遵循了他的教程,但出现了这个错误。 在我的控制台中,我得到了这个错误。 未捕获(promise中)语法错误:意外标记 我创建了UserData。js并导入此用户数据。js到我的登录页面 导入{UserData}from'./UserData'; 这是我的按钮手柄提交: 在我的网络
我无法恢复数据从我的Wordpress API与改造库。错误是:HTTP FAILED:java.net.未知主机异常:无法解决主机"app.divion.fr":没有地址与主机名关联 ApiClient: } API接口: 公共接口{ } 显示xml Thx;)
所以,我从用户提示输入变量。如果变量小于0且大于10。如果用户输入
在将新更新安装到Visual Studio后,我才开始出现此错误。出于某种原因,我的建筑现在都不会从詹金斯那里得到。已经做了几个小时了,似乎还不明白。 我从比特桶里取东西。 请帮助。 由工作区C:\Program Files(x86)\Jenkins\workspace\CA[WS-CLEANUP]中的计时器生成启动删除项目工作区。。。[WS-CLEANUP]已完成克隆远程Git存储库克隆存储库h