那么我有一个庞大的数据包大小的列表需要重新编写,我不想手动做,所以我要去为它制定计划。在Java中的字符串操作导致“字符串索引超出范围”
public static OutcommingPacket aClass198_1993 = new OutcommingPacket(68, 8);
这和榜样的线路之一的,我所要做的,就是让程序去68,其存储在数据包串,并得到了8号,并存储在大小字符串。
这是我的代码到目前为止。
public class PacketSizeFixer {
public static final String IN = "./out/OldPacketSizes.txt";
public static final String OUT = "./out/PacketSizesFormatted.txt";
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new FileReader(IN));
BufferedReader writer = new BufferedReader(new FileReader(OUT));
String line;
String packet, size;
while ((line = reader.readLine()) != null) {
packet = line.substring(line.indexOf("new OutcommingPacket(", line.indexOf(", ")));
size = line.substring(line.indexOf(", "), line.indexOf(");"));
}
}
}
我不确定是不是我做了正确的方式,因为我不断收到一个字符串索引超出范围
请帮助!
顺便说一句,并非所有的数据包都有相同的名称,有些更长,有些更短,数据包可能是两位数,并且尺寸也是如此。请帮忙!
请张贴实际的异常和堆栈跟踪你的问题的一部分。这是那些本地化的调试问题之一,如果人们可以看到问题,那么这些问题可能会立即解决。 – 2012-07-12 00:30:23
'输出'拼写为'm'。您正在为作家使用Reader。如果未找到子字符串,则忽略indexOf的-1返回值。您需要将要搜索的字符串的长度添加到子字符串调用的起始索引。 – 2012-07-12 01:45:40