当来自 bundle android 时,如何在每个字符串中添加逗号?
How to add comma in every strings when it comes from bundle android?
我从包中得到 4 个字符串。但是,如果字符串中的任何一个为空。单独的逗号看起来不太好看。
所以如果4个字符串中的任何一个有空字符串,我就不应该加逗号。
如何进行?
Bundle bundle = getIntent().getExtras();
if (bundle != null) {
trx1 = bundle.getString("trx1");
trx2 = bundle.getString("trx2");
trx3 = bundle.getString("trx3");
trx4 = bundle.getString("trx4");
}
//字符串normorTrx = trx1+ ", "+trx2+" ,"+ trx3 + " ,"+trx4;
如果 trx2 为空或 trx3 或 trx4 为空或两个值的任意组合为空,则上述字符串无效。
输出看起来像
1,4 或 1,2,.上述条件 normorTrx 仅在所有 4 个数据都存在时才有效。 1,2,3,4 来自 bundle。
如何解决这个问题?
试试这个
Bundle bundle = getIntent().getExtras();
if (bundle != null) {
trx1 = bundle.getString("trx1");
trx2 = bundle.getString("trx2");
trx3 = bundle.getString("trx3");
trx4 = bundle.getString("trx4");
}
StringBuilder stringBuilder= new StringBuilder();
if(!TextUtils.isEmpty(trx1)){
stringBuilder.append(trx1+",");
}
if(!TextUtils.isEmpty(trx2)){
stringBuilder.append(trx2+",");
}
if(!TextUtils.isEmpty(trx3)){
stringBuilder.append(trx3+",");
} if(!TextUtils.isEmpty(trx4)){
stringBuilder.append(trx4);
}
String normorTrx =stringBuilder.toString();
您可以使用 StringBuilder 来实现:
Bundle bundle = getIntent().getExtras();
if (bundle != null) {
trx1 = bundle.getString("trx1");
trx2 = bundle.getString("trx2");
trx3 = bundle.getString("trx3");
trx4 = bundle.getString("trx4");
}
StringBuilder sb = new StringBuilder();
if(trx1 != null && !trx1.isEmpty()){
sb.append(trx1);
sb.append(",")
}
if(trx2 != null && !trx2.isEmpty()){
sb.append(trx2);
sb.append(",")
}
if(trx3 != null && !trx3.isEmpty()){
sb.append(trx3);
sb.append(",")
}
if(trx4 != null && !trx4.isEmpty()){
sb.append(trx4);
}
String normorTrx = sb.toString(); // -----> your desired result
很简单。
使用 StringJoiner
。下面是示例。
StringJoiner joinNames = new StringJoiner(","); // passing comma(,) as delimiter
// Adding values to StringJoiner
joinNames.add("Rahul");
joinNames.add("Raju");
joinNames.add("Peter");
joinNames.add("Raheem");
System.out.println(joinNames);
输出:
拉胡尔、拉朱、彼得、拉希姆
仅适用于 Java 8 和 API >= 24
我从包中得到 4 个字符串。但是,如果字符串中的任何一个为空。单独的逗号看起来不太好看。
所以如果4个字符串中的任何一个有空字符串,我就不应该加逗号。
如何进行?
Bundle bundle = getIntent().getExtras();
if (bundle != null) {
trx1 = bundle.getString("trx1");
trx2 = bundle.getString("trx2");
trx3 = bundle.getString("trx3");
trx4 = bundle.getString("trx4");
}
//字符串normorTrx = trx1+ ", "+trx2+" ,"+ trx3 + " ,"+trx4;
如果 trx2 为空或 trx3 或 trx4 为空或两个值的任意组合为空,则上述字符串无效。 输出看起来像 1,4 或 1,2,.上述条件 normorTrx 仅在所有 4 个数据都存在时才有效。 1,2,3,4 来自 bundle。
如何解决这个问题?
试试这个
Bundle bundle = getIntent().getExtras();
if (bundle != null) {
trx1 = bundle.getString("trx1");
trx2 = bundle.getString("trx2");
trx3 = bundle.getString("trx3");
trx4 = bundle.getString("trx4");
}
StringBuilder stringBuilder= new StringBuilder();
if(!TextUtils.isEmpty(trx1)){
stringBuilder.append(trx1+",");
}
if(!TextUtils.isEmpty(trx2)){
stringBuilder.append(trx2+",");
}
if(!TextUtils.isEmpty(trx3)){
stringBuilder.append(trx3+",");
} if(!TextUtils.isEmpty(trx4)){
stringBuilder.append(trx4);
}
String normorTrx =stringBuilder.toString();
您可以使用 StringBuilder 来实现:
Bundle bundle = getIntent().getExtras();
if (bundle != null) {
trx1 = bundle.getString("trx1");
trx2 = bundle.getString("trx2");
trx3 = bundle.getString("trx3");
trx4 = bundle.getString("trx4");
}
StringBuilder sb = new StringBuilder();
if(trx1 != null && !trx1.isEmpty()){
sb.append(trx1);
sb.append(",")
}
if(trx2 != null && !trx2.isEmpty()){
sb.append(trx2);
sb.append(",")
}
if(trx3 != null && !trx3.isEmpty()){
sb.append(trx3);
sb.append(",")
}
if(trx4 != null && !trx4.isEmpty()){
sb.append(trx4);
}
String normorTrx = sb.toString(); // -----> your desired result
很简单。
使用 StringJoiner
。下面是示例。
StringJoiner joinNames = new StringJoiner(","); // passing comma(,) as delimiter
// Adding values to StringJoiner
joinNames.add("Rahul");
joinNames.add("Raju");
joinNames.add("Peter");
joinNames.add("Raheem");
System.out.println(joinNames);
输出:
拉胡尔、拉朱、彼得、拉希姆
仅适用于 Java 8 和 API >= 24