我从bundle获得了4个字符串。但是如果任何一个字符串都是空的。单独逗号看起来不太好看。
因此,如果4个字符串中的任何一个都有空字符串,我不应该添加逗号。
如何进行?
http.
.anonymous()
.and()
.authorizeRequests()
.antMatchers("/admin-panel/**").authenticated()
.anyRequest().permitAll()
// String normorTrx = trx1 +"," + trx2 +" ," + trx3 +" &#34 + TRX4;
如果trx2为空或者trx3或trx4为空或者两个值的任意组合为空,则上述字符串不起作用。 输出看起来像 1,,4或1,2 ,,。上述条件normorTrx仅在存在所有4个数据时有效。 1,2,3,4来自捆绑。
如何解决这个问题?
答案 0 :(得分:1)
试试这个
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();
答案 1 :(得分:1)
您可以使用 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
答案 2 :(得分:0)
太简单了。
使用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);
输出:
<强>的Rahul,拉朱,彼得,拉希姆强>
仅适用于Java 8和API&gt; = 24