java - 如何删除字符串串联中的最后一个 "& "?

标签 java

我有一个主类,它应该将输出打印到控制台...

例如如果该行包含 A 和 B,我需要在控制台上打印“Apple & Banana”,但使用我当前的代码,它打印为“Apple & Banana &”

我会在 main 方法中通过首先实例化该类的对象来执行此操作, 即

VeggiesAndFruits myVeg1 = new VeggiesAndFruits(AB);
VeggiesAndFruits myVeg2 = new VeggiesAndFruits(A);
System.out.println(myVeg1.getDescription());
System.out.println(myVeg2.getDescription());

代码示例:

public class VeggiesAndFruits
{
String line;

public VeggiesAndFruits(String line)
{
this.line = line;
}

public String getDescription()
    {
        String description = "";

        if(line.contains("A"))
        {
            description += "Apple & ";
        }
        if(line.contains("B"))
        {
            description += "Banana & ";
        }
        if(line.contains("C"))
        {
            description += "Carrot & ";

        return description;
}
}

最佳答案

如果使用 Java 8+,我建议使用 StringJoiner这里。正如 Javadoc 所说,StringJoiner 用于构造由定界符分隔的字符序列。 比如,

public String getDescription() {
    StringJoiner sj = new StringJoiner(" & ");

    if (line.contains("A")) {
        sj.add("Apple");
    }
    if (line.contains("B")) {
        sj.add("Banana");
    }
    if (line.contains("C")) {
        sj.add("Carrot");
    }
    return sj.toString();
}

在早期版本的 Java (5+) 中,您可以使用 StringBuilder (和“胶水”为 kaya3 noted )。

public String getDescription() {
    StringBuilder sb = new StringBuilder();
    String glue = "";
    if (line.contains("A")) {
        sb.append("Apple");
        glue = " & ";
    }
    if (line.contains("B")) {
        sb.append(glue);
        sb.append("Banana");
        glue = " & ";
    }
    if (line.contains("C")) {
        sb.append(glue);
        sb.append("Carrot");
    }
    return sb.toString();
}

在 Java 5 之前,您可以使用 StringBuffer喜欢

public String getDescription() {
    StringBuffer sb = new StringBuffer();
    String glue = "";
    if (line.contains("A")) {
        sb.append("Apple");
        glue = " & ";
    }
    if (line.contains("B")) {
        sb.append(glue);
        sb.append("Banana");
        glue = " & ";
    }
    if (line.contains("C")) {
        sb.append(glue);
        sb.append("Carrot");
    }
    return sb.toString();
}

关于java - 如何删除字符串串联中的最后一个 "& "?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60032745/

相关文章:

java - 从数组打印?

java - 使用 string.split java 将一个字符串分成两个

java - 如何绕过 Maven 中的编译?

java - 使用 BorderPane 定位控件时出现问题

java - Struts2/Spring - 即使在通过验证后也不会调用执行

java - 从 Eclipse 插件运行时选项卡添加 jar

java - 不能抛出 UnderflowException 类型的异常;

java - log4j:记录一个包,但不包括它的子包

java - Kafka Utils 类路径错误 : org. apache.kafka.common.utils.Utils

java - Object.hashCode() 返回重复项