Java 当字符串来自android包时,如何在每个字符串中添加逗号?

Java 当字符串来自android包时,如何在每个字符串中添加逗号?,java,android,string,bundle,Java,Android,String,Bundle,我从bundle中得到4条字符串。但是如果字符串中有一个是空的。只有逗号看起来不好看 因此,如果在4个字符串中的任何一个字符串中有空字符串,我不应该添加逗号 如何进行 Bundle bundle = getIntent().getExtras(); if (bundle != null) { trx1 = bundle.getString("trx1"); trx2 = bundle.getString("trx2"); trx3 = bund

我从bundle中得到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 = 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 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

检查trx1.isEmpty{不附加逗号}否则{附加逗号}使用StringJoinerSo输出应为字符串normorTrx=stringBuilder?但当我使用时,我不兼容type@Walter像这样使用字符串normorTrx=stringBuilder.toString;您好,当trxt1中有数据时,我得到了逗号。输出:1,例如关于@WalterI接收字符串normorTrx=sb的更多信息;此行中的类型不兼容。