我是java的新手,我正在尝试替换" 0' s"用" x"在索引" 0,1,7,13,20,21,22和23"在下面给出的0和1的序列中。到目前为止,代码已经给出了。他们是一些问题,因此我无法获得理想的结果。
001111
101110个
100010个
110000
public class Task {
public static void main (String args[]) {
File file = new File("C:\\NetBeansProjects\\Task\\src\\File.txt");
BufferedReader reader = null;
try {
reader = new BufferedReader(new FileReader(file));
String text = null;
//Array lis declaration
ArrayList<String> list = new ArrayList<>();
while( (text = reader.readLine()) != null){
list.add(text);
}
//printing Array list.
System.out.println("Print Array list\n");
for(String d:list){
// System.out.println(d);
}
//Convert ArrayList into 2DArray
int noOfLines = 0;
String[][] array = new String[list.size()][];
for(int i=0; i < list.size(); i++){
String row = list.get(i);
noOfLines++;
array[i] = row.split("\0");
}
System.out.println("Befor");
print(array);
int row=0,column=0;
for(int count=0; count<array.length; count++){
if(row<noOfLines-1 && array[row+1][column]=="0"){
row++;
}
else
if(column<array[row].length-1 && array[row][column+1]=="0"){
column++;
}
array[row][column] = "x";
}
// array[0][0] = "x";
System.out.println("After");
print(array);
//end try Block
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} //end Catch Block
} //end main
public static void print(String[][] array){
for(int i=0; i<array.length; i++){
for(int j=0; j<array[i].length; j++){
System.out.print(array[i][j]);
}
System.out.println("");
}
} //end function print.
} //end Class
答案 0 :(得分:1)
这一行可能存在一个问题:
array[i] = row.split("\0");
反斜杠表示该行在值为零的字符which is not a character that actually occurs in text处拆分。
如果您打算在"0"
分割行,请使用row.split("0")
。如果您打算将行拆分为字符,请使用row.split("")
。
然后,您正在使用==
来比较字符串。 NetBeans实际上应警告您这不起作用,并建议将其替换为.equals
(例如,array[row+1][column].equals("0")
)