if语句中的Java子字符串不起作用

时间:2017-01-21 13:19:32

标签: java string if-statement substring

我正在尝试使用substring方法删除字符串中的最后一个字符。 在if语句之外正常工作。但在其中只是通过if语句并返回原始String

public String getElkon(int p, int zbytek) {   
    System.out.println(zbytek);

    for (int i = 0; i < p; i++) {
        vysledek += elkon[i];
        vysledek += " ";
        System.out.println(vysledek);
    }
  ***if(zbytek != 0){
        vysledek = vysledek.substring(0, vysledek.length() - 1);
        return vysledek;
    }
    else{
        return vysledek;
    }***

}

2 个答案:

答案 0 :(得分:1)

如果您不必修改尾随空格以附加String(s),那么您的代码会更直接。此外,您还不清楚为什么期望zbytek控制trim。我想你想要if (p != 0)(因为这是你的循环哨兵)。我会使用StringJoiner来实现这个,如

public String getElkon(int p, int zbytek) {
    System.out.println(zbytek);
    StringJoiner sj = new StringJoiner(" ");
    for (int i = 0; i < p; i++) {
        sj.append(elkon[i]);
    }
    return sj.toString();
}

答案 1 :(得分:0)

字符串中的最后一个字符是空格,因为您上次在for循环中添加了它。

要修剪if语句之前的最后一个空格,您可以使用代码

public String getElkon(int p, int zbytek) {   
    System.out.println(zbytek);

    for (int i = 0; i < p; i++) {
        vysledek += elkon[i];
        vysledek += " ";
        System.out.println(vysledek);
    }

    if (p > 0)
        vysledek = vysledek.substring(0, vysledek.length() - 1);

    if(zbytek != 0){    
       ...
    }

    return vysledek;     
}