那麼我有一個龐大的數據包大小的列表需要重新編寫,我不想手動做,所以我要去爲它制定計劃。在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