如果其他块,则将多个变量连接到Java中的字符串



我需要创建一个字符串,该字符串成为SHA 256函数的输入,以生成其等效量。该字符串是通过将几个变量连接到以下来创建的:

String strRequest = "";
strRequest = request_passphrase.concat("access_code=").concat(access_code).concat("amount=").concat(amount).concat("command=").concat(mode).concat("currency=").concat(currency).concat("merchant_identifier=").concat(merchant_identifier).concat(request_passphrase);
if(strRequest!="" || !strRequest.isEmpty()) {
  signature = sha256(strRequest);
}

应该是创建一个if-else掉落串联的最佳方法。

for ex。如果access_code为空或空为空,则字符串将为request_passphrase.concat(" nose =")。concat(量)。等等。

取决于您的上下文,合理的答案可以以不同的方式组织数据:

request_passphrase.concat("access_code=").concat(access_code)

您可以通过某种Map<String, String>的字段列表(或更糟糕的是:方法参数) - 键表示"字段名称",例如(" access_code");地图值表示相应的值。如果该值为null,您知道要不附加。

然后,您可以简单地迭代该映射对象,拉键/值对并将它们附加到该字符串。也许您需要一个其他列表,该列表告诉您订单应该迭代地图键。

如所说:这些是选项。为了做出明确的决定,应该了解更多背景;基础"数据模型";其他要求等。绝对可以肯定的一件事:如果/其他链条从不一个好主意。

java中的包裹字符串8 Optional

Optional<String> accessCode = Optional.ofNullable("access");
Optional<String> addressCode = Optional.ofNullable(null);
System.out.println(accessCode.orElse("It was null."));
System.out.println(addressCode.orElse("It was null."));

在您的特殊情况下,"It was null."应替换为空字符串。

此外。使用StringBuilder实例最小化String构造函数。
典型用法:

StringBuilder outputBuilder = new StringBuilder("");
while (condition) {
    outputBuilder.append(" another chunk ");
}
outputBuilder.append("end.");
String outputString = outputBuilder.toString();

此外,您可以使用Map<String, Optional<String>>过滤"可无效"参数。
这将是一个很好的主意。

相关内容

  • 没有找到相关文章

最新更新