我有一个主类,它应该将输出打印到控制台...
例如如果该行包含 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/