如何用其他字符替换字符串中的1个或多个字符?

时间:2013-09-22 16:27:15

标签: java string

我需要打印

......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;

但它并没有在正确的地方取代

3 个答案:

答案 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)