[英]ReplaceAll not working on String[] element
我需要編寫使用FEN作為創建國際象棋棋盤的參數的國際象棋程序。 為了簡單地完成這個過程,我想用replaceAll方法用等於“ 1”的數字替換與該數字相等的數字(看我的代碼)。 不幸的是,這行不通,我也不知道為什么。 有人可以告訴我該怎么做嗎?
String[] read2 = new String[] {"rnbqkbnr", "pppppppp", "8", "8", "8", "8", "PPPPPPPP", "RNBQKBNR"};
for (int i = 0; i < 8; i++ ) {
System.out.println(read2[i]);
read2[i].replaceAll("8", "11111111");
read2[i].replaceAll("7", "1111111");
read2[i].replaceAll("6", "111111");
read2[i].replaceAll("5", "11111");
read2[i].replaceAll("4", "1111");
read2[i].replaceAll("3", "111");
read2[i].replaceAll("2", "11");
System.out.println(read2[i]);
}
輸出是
rnbqkbnr rnbqkbnr pppppppp pppppppp 8 8 8 8 8 8 8 8 PPPPPPPP PPPPPPPP RNBQKBNR RNBQKBNR
但應該是
rnbqkbnr rnbqkbnr pppppppp pppppppp 8 11111111 8 11111111 8 11111111 8 11111111 PPPPPPPP PPPPPPPP RNBQKBNR RNBQKBNR
您需要將結果保存在數組中,以用新值替換舊值,通過在現有字符串上調用replace來生成新字符串,並且沒有將新字符串分配給對象引用。
String[] read2 = new String[] {"rnbqkbnr", "pppppppp", "8", "8", "8", "8", "PPPPPPPP", "RNBQKBNR"};
for (int i = 0; i < 8; i++ ) {
System.out.println(read2[i]);
read2[i] = read2[i].replace("8", "11111111");
read2[i] = read2[i].replace("7", "1111111");
read2[i] = read2[i].replace("6", "111111");
read2[i] = read2[i].replace("5", "11111");
read2[i] = read2[i].replace("4", "1111");
read2[i] = read2[i].replace("3", "111");
read2[i] = read2[i].replace("2", "11");
System.out.println(read2[i]);
}
編輯:如注釋中所建議,使用replace代替replaceAll,因為replaceAll用於正則表達式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.