このコードはarray
、別の 2 列を使用して検索と置換を実行するためarray.
のものです。現時点ではIndexOutOfBoundsException
、この行に a が返されます。
fileContents.set(i, fileContents.get(i).replace(hexLibrary[i][0], hexLibrary[i][1]));
私は Java を初めて使用するので、この構文がどのように機能して何が問題なのかを理解するのに十分な理解がありません。検索と置換のコード ブロック全体は次のとおりです。
String[][] hexLibrary; // calls the replaces array from the LibToArray method
hexLibrary = LibToArray();
for(int i=0;i<hexLibrary.length;i++) {
fileContents.set(i, fileContents.get(i).replace(hexLibrary[i][0], hexLibrary[i][1]));
}
for (String row : fileContents) {
System.out.println(row); // print array to cmd
}
array
置換を実行するために使用されるを構築するコードは次のとおりです。
String thisLine;
String[] temp;
String delimiter=",";
String [][] hexLibrary = new String[501][2];
try {
BufferedReader br= new BufferedReader(new FileReader("hexlibrary.txt"));
for (int j=0; j<501; j++) {
thisLine=br.readLine();
if (thisLine != null) {
temp = thisLine.split(delimiter);
for (int i = 0; i < 2; i++) {
hexLibrary[j][i]=temp[i];
}
} else {
JOptionPane.showMessageDialog(null,"Library file corrupt.");
break; // no point in continuing to loop
}
}
}
- - - - 編集 - - - -
以下は、「fileContents」を初期化するコードです。array.
String FileName; // set file variable
FileName = fileName.getText(); // get file name
ArrayList<String> fileContents = new ArrayList<String>(); // create arraylist
BufferedReader reader = new BufferedReader(new FileReader(FileName)); // create reader
String line = null;
while ((line = reader.readLine()) != null) {
if(line.length() > 0){ // don't include blank lines
line = line.trim(); // remove whitespaces
fileContents.add(line); // add to array
}
}