在某些条件下删除变量

时间:2013-08-22 22:54:34

标签: java

有没有办法在特定条件下从字符串中删除变量? 例如:有两行,每行有100,200和300垂直。 如果有人要选择100,我怎么能让它删除100而留下200和300 ..?

我还没有尝试过任何东西,但我把100,200等作为变量,只是打印出某个样式的变量,使它看起来是垂直的。变量也是int ..

P.s这是一场危险的比赛。

2 个答案:

答案 0 :(得分:0)

阅读你的问题,似乎你有这样的想法:

int c1_100=100, c1_200=200, c1_300=300, c2_100=100, c2_200=200, c3_300=300;
System.out.println(c1_100+"/t"+c2_100+"/t"+c1_200+"/n"+c2_200+"/t"+c1_300+"/t"+c2_300+"/t"+);

如果你想保留这个结构,你可以改为使用字符串:

String c1_100="100", c1_200="200", c1_300="300", c2_100="100", c2_200="200", c3_300="300";

当玩家选择问题c2_200时,您可以

c2_100="   ";

但这不是组织代码的最佳方式。 如果要以类似表格的形式打印数据,可以使用二维数组:

int questions[][]={{100, 200, 300}, {100, 200, 300}, {100, 200, 300}};

然后将它们打印出来:

for(int i=0, i<3; i++){
   for(int k=0; k<3; k++){
      if(question[k][i]>0){ //test if you assigned 0 to the chosen question
        System.out.print(question[k][i]+"/t");
      }
      System.out.println("/n");
   }
}

每次用户选择问题时,请在其中输入0。例如,如果他在第2列和值100中选择问题,请执行

questions[1][0]=0;

更好的解决方案不是硬编码值,而是使用数组中的位置来了解值:

boolean questions[][];
    questions=new boolean[5][3]; //here I created 5 columns and 3 rows
    //initialize
    for(int i=0; i<questions.length; i++){
           for(int k=0; k<questions[0].length; k++){
              questions[i][k]=true;
           }
    }

    //print
        for(int i=0; i<questions[0].length; i++){
               for(int k=0; k<questions.length; k++){
                  if(questions[k][i]){ //test if you assigned true to the chosen question
                    System.out.print(100*(i+1)+"\t");
                  } 
                  else{
                      System.out.print("   "+"\t");
                  }
               }
               System.out.println();
        }
当选择问题时,

并且当然不合适:

questions[x][y]=false;

输出:

100 100 100 100 100 
200 200 200 200 200 
300 300 300 300 300

之后

questions[1][1]=false;

100 100 100 100 100 
200     200 200 200 
300 300 300 300 300

答案 1 :(得分:-1)

此答案假设您有一个要打印的字符串,并更改内容的部分。

用空格替换变量。

首先使用

找到要消除的字符串的正确位置
indexOf(String str, int fromIndex),

示例

indexOf(“100”,x);

并且对于x,您将列的索引放在要从中删除的位置。 然后从开头提取子字符串到你想要消除的子字符串,

substring(int beginIndex,int endIndex);

并使用以下内容将其替换为原文:

replace(CharSequence target+"100", CharSequence replacement+"   ");

http://docs.oracle.com/javase/7/docs/api/java/lang/String.html