Java删除最后一个字符串

use*_*475 7 java stringbuilder

我有不同类型的名字.喜欢

ABC BCD, EFG HGF, HGF HJK
Run Code Online (Sandbox Code Playgroud)

我想,以取代过去,"and".所以,格式将是这样的

ABC BCD, EFG HGF & HGF HJK
Run Code Online (Sandbox Code Playgroud)

我试过这个

names = "Jon Benda, Jon Wetchler, Thomas Leibig "
StringBuilder sbd = new StringBuilder();
String[] n = getNames.split("\\s+");
System.out.println(n.length);
for (int i = 0; i < n.length; i++) {
    sbd.append(n[i]);
    System.out.print(n[i]);
    if (i < n.length - 3)
        sbd.append(" ");
    else if (i < n.length - 2)
        sbd.append(" & ");
}
System.out.print("\n");
System.out.print(sbd);
Run Code Online (Sandbox Code Playgroud)

Mar*_*oun 23

为什么要过度复杂化呢?您可以搜索最后,使用的索引,String#lastIndexOf然后使用StringBuilder#replace:

int lastIdx = names.lastIndexOf(",");
names = new StringBuilder(names).replace(lastIdx, lastIdx+1, "and").toString();
Run Code Online (Sandbox Code Playgroud)

  • 为它写了一个程序,同时,你发布了一个很好的答案:) upvote来自我 (3认同)

Pra*_*kar 5

你可以做这样的事情.

 public static void main(String[] args) {
        String names = "Jon Benda, Jon Wetchler, Thomas Leibig ";
        String newNames = "";
        StringBuilder sbd = new StringBuilder();
        String[] n = names.split(",");
        System.out.println(n.length);
        for (int i = 0; i < n.length; i++) {

            if (i == n.length - 1) {
                newNames = newNames + " and " + n[i];
            } else {
                newNames = newNames + n[i] + " ";
            }
        }
        System.out.println(newNames);
    }
Run Code Online (Sandbox Code Playgroud)

这输出

 Jon Benda  Jon Wetchler  and  Thomas Leibig 
Run Code Online (Sandbox Code Playgroud)