0

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

我还没有尝试过任何东西,但我已将 100,200 等作为变量,并以某种样式打印出变量以使其看起来垂直。变量也是int的..

Ps 这是一个危险游戏。

4

2 回答 2

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();
        }

and off course when a question is chosen:

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
于 2013-08-23T09:38:47.200 回答
-1

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

用空格替换变量。

首先找到要消除的字符串的正确位置,使用

indexOf(String str, int fromIndex),

例子

indexOf("100", x);

对于 x ,您将列的索引放在要从中删除它的位置。然后将子串从开头提取到要消除的那个,

子字符串(int beginIndex,int endIndex);

并将其替换为原始使用:

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

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

于 2013-08-22T23:01:43.337 回答