Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 用一些消息替换字符串生成器中的null或空数据_Java - Fatal编程技术网

Java 用一些消息替换字符串生成器中的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; 因此,

我有一个字符串生成器,它包含一些数据。我想确保每当其中有null或空(“”)数据时,我想用一些消息替换它,例如不可用。这是一个巨大的数据,我不能去替换每一个字符串。 以下是一段代码:

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”

看到你在做什么,你可能还想看看


在附加字符串之前,检查字符串是否为空。如果字符串为空,则可以在消息中附加一个字符串,而不是数据字符串的内容。;)

在附加字符串之前,检查字符串是否为空。如果字符串为空,则可以在消息中附加一个字符串,而不是数据字符串的内容。;)

如果无法在缓冲区中替换,则必须在将值附加到该缓冲区之前检查值。如果无法在缓冲区中替换,则必须在将值附加到该缓冲区之前检查值。