特定の条件で文字列から変数を削除する方法はありますか? 例: 2 つの行があり、各行には 100、200、および 300 が縦に並んでいます。誰かが 100 を選択した場合、どうすれば 100 を削除して 200 と 300 を残すことができますか?
私はまだ何も試していませんが、100、200などを変数として入れ、特定のスタイルで変数を出力して、垂直に見えるようにしました。変数もintです..
Ps これは危険なゲーム用です。
特定の条件で文字列から変数を削除する方法はありますか? 例: 2 つの行があり、各行には 100、200、および 300 が縦に並んでいます。誰かが 100 を選択した場合、どうすれば 100 を削除して 200 と 300 を残すことができますか?
私はまだ何も試していませんが、100、200などを変数として入れ、特定のスタイルで変数を出力して、垂直に見えるようにしました。変数もintです..
Ps これは危険なゲーム用です。
あなたの質問を読むと、あなたは次のようなことを念頭に置いているようです:
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
この回答は、印刷したい文字列があり、コンテンツの一部を変更していることを前提としています。
変数を空白に置き換えます。
最初に、削除したい文字列の正しい位置を見つけます。
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