如何替换' 0'的价值在给定的模式?

时间:2014-04-22 12:48:57

标签: java

我是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

1 个答案:

答案 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")