Java 用一些消息替换字符串生成器中的null或空数据
我有一个字符串生成器,它包含一些数据。我想确保每当其中有null或空(“”)数据时,我想用一些消息替换它,例如不可用。这是一个巨大的数据,我不能去替换每一个字符串。 以下是一段代码:Java 用一些消息替换字符串生成器中的null或空数据,java,Java,我有一个字符串生成器,它包含一些数据。我想确保每当其中有null或空(“”)数据时,我想用一些消息替换它,例如不可用。这是一个巨大的数据,我不能去替换每一个字符串。 以下是一段代码: Stringbuilder sb = new Stringbuilder(); String a = "10"; String b = 13; sb.append("entity.id=").append(a).append("entity.value=").append(b); sb.toString; 因此,
Stringbuilder sb = new Stringbuilder();
String a = "10";
String b = 13;
sb.append("entity.id=").append(a).append("entity.value=").append(b);
sb.toString;
因此,每当entity.id或entity.“ANYTHING”等于“null”或为空时,应将其替换为类似entity.id=not available的消息
public void myCustomAppend(Appendable a, CharSequence cs){
if(cs == null || cs.length() == 0){
a.append("(not available)");
}else{
a.append(cs);
}
}
myCustomAppend(sb, "entity.id=");
myCustomAppend(sb, a);
myCustomAppend(sb, "entity.value=");
myCustomAppend(sb, b);
对此的一些改进可能包括将其创建为具有自身状态的自定义对象-防止需要不断传递对StringBuilder的相同引用,以及允许链接连续调用(正如您在原始问题中所做的那样)。在不知道确切要求的情况下,这可能并不完美,但有一种选择:
public void myCustomAppend(Appendable a, CharSequence cs){
if(cs == null || cs.length() == 0){
a.append("(not available)");
}else{
a.append(cs);
}
}
myCustomAppend(sb, "entity.id=");
myCustomAppend(sb, a);
myCustomAppend(sb, "entity.value=");
myCustomAppend(sb, b);
对此的一些改进可能包括将其创建为具有自己状态的自定义对象-防止需要不断向StringBuilder传递相同的引用,以及允许链接连续调用(正如您在原始问题中所做的那样)。创建一个函数,例如
public String checkString(String str) {
if(str == null || str.isEmpty())
return "N/A";
return str;
}
在要追加的字符串上调用它
sb.append(“entity.id=).append(checkString(a)).append(“entity.value=).append(checkString(b))代码>创建一个函数,例如
public String checkString(String str) {
if(str == null || str.isEmpty())
return "N/A";
return str;
}
在要追加的字符串上调用它
sb.append(“entity.id=).append(checkString(a)).append(“entity.value=).append(checkString(b))代码>考虑使用番石榴的课程
List values=newArrayList(“value1”、“value2”、a、b、c);
字符串结果=joiner.on(“”).useForNull(“null”).join(值);
您还可以使用“omitNull”而不是“useForNull”
看到你在做什么,你可能还想看看
考虑使用番石榴的课程
List values=newArrayList(“value1”、“value2”、a、b、c);
字符串结果=joiner.on(“”).useForNull(“null”).join(值);
您还可以使用“omitNull”而不是“useForNull”
看到你在做什么,你可能还想看看
在附加字符串之前,检查字符串是否为空。如果字符串为空,则可以在消息中附加一个字符串,而不是数据字符串的内容。;) 在附加字符串之前,检查字符串是否为空。如果字符串为空,则可以在消息中附加一个字符串,而不是数据字符串的内容。;) 如果无法在缓冲区中替换,则必须在将值附加到该缓冲区之前检查值。如果无法在缓冲区中替换,则必须在将值附加到该缓冲区之前检查值。