有没有办法在特定条件下从字符串中删除变量? 例如:有两行,每行有100,200和300垂直。 如果有人要选择100,我怎么能让它删除100而留下200和300 ..?
我还没有尝试过任何东西,但我把100,200等作为变量,只是打印出某个样式的变量,使它看起来是垂直的。变量也是int ..
P.s这是一场危险的比赛。
答案 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