【发布时间】:2014-07-31 18:34:02
【问题描述】:
我正在为我的 Java 类开发一个项目,但似乎无法弄清楚如何解决这个问题。根据异常,我知道它在字符串索引长度内,但是,我似乎无法纠正这个问题。这是我第一次尝试学习Java,所以请原谅我的新手问题。
手头任务的一些背景知识:我正在尝试导入一个 ascii 艺术文件 (.txt),将其转换为 csv 格式,然后输出到指定的文件。方法签名由讲师提供,不能被篡改。这段代码可以编译,但是在运行时,会抛出一个引用我对imageToNumRep 的调用的越界异常。
这是我在这个特定部分的代码:
import java.io.*;
import java.util.*;
public class Convert{
public static void main(String[] args) throws FileNotFoundException {
File input=new File("Flag.txt");
File output=new File("result.txt");
imageToNumRep(input, output);
}
public static void imageToNumRep(File input, File output) throws FileNotFoundException {
Scanner in=new Scanner(input);
PrintStream out= new PrintStream(output);
int count=0;
while(in.hasNextLine()) {
count++;
String s=in.nextLine();
out.print("(");
for(int x=0; x < s.length()-1; x++) {
int num=1;
while(s.charAt(x)==s.charAt(x+1)) {
num++;
}
out.print(num+s.charAt(x-1));
num=1;
if(s.charAt(x) != s.charAt(x-1) && s.charAt(x) != s.charAt(x+1)) {
out.print("1,"+s.charAt(x));
} else {
num=1;
}
}
out.print(")");
out.println();
}
}
}
【问题讨论】:
-
我们将需要查看堆栈跟踪以及抛出异常的哪一行。
-
是的,就是这样。线程“主”java.lang.StringIndexOutOfBoundsException 中的异常:字符串索引超出范围:Convert.main 的 Convert.imageToNumRep(Convert.java:24) 的 java.lang.String.charAt(String.java:658) 的 -1 (Convert.java:8)
标签: java string indexoutofboundsexception