0

特定の条件で文字列から変数を削除する方法はありますか? 例: 2 つの行があり、各行には 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="   ";

しかし、これはコードを整理する最良の方法ではありません。表のような形式でデータを出力したい場合は、2 次元配列を使用できます。

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
于 2013-08-23T09:38:47.200 に答える
-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

于 2013-08-22T23:01:43.337 に答える