我需要打印
......e......
..e..........
........e....
.....iAi.....
其中e是和有位置的敌人,所以我替换了一个改变位置的点,0分别是左边和右边的中心边界-6和6。并且iAi是有2枪的玩家所以我必须替换3“。” 2 i和1 A. 我到目前为止所做的事情是
String asd = ".............";
char cas;
if ((isDead()== true)|| (justHit=true))
cas = 'x';
else
cas ='e';
String wasd = asd.substring(0,position-1)+cas+asd.substring(position +1);
return wasd;
但它并没有在正确的地方取代
答案 0 :(得分:1)
试试这个,也许会有所帮助
String s1 = ".............";
String s2 = "xx";
int p = 1;
String s3 = s1.substring(0, p) + s2 + s1.substring(p + s2.length());
System.out.println(s1);
System.out.println(s3);
输出
.............
.xx..........
答案 1 :(得分:1)
使用String意味着在每个循环中重新创建一定数量的对象。使用char []可以显着降低占用空间:
private char[] afd = {'.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.'};
private int prevPos = 0;
public String placeEnemy(int newPos, boolean dead, boolean justHit) {
afd[prevPos] = '.';
afd[newPos] = 'e';
prevPos = newPos;
return afd
}
答案 2 :(得分:1)
在上面的代码中使用asd.substring(0, position)
代替asd.substring(0, position - 1)
。