将字符串数组转换为字符串

时间:2016-11-14 09:44:21

标签: java string

你好,我对阵列转换有一点问题

我想将此数组格式["x","z","y"]转换为带有逗号和括号的字符串格式('x','y','z')

btw这个数组的动态大小可能会增加或减少

这是我的尝试

public static void main(String[] args) throws FileNotFoundException, IOException {
        // TODO code application logic here
        String [] arr = {"x","y","z"};
        String s = "(";

        for(int i = 0; i <arr.length;i++){
            s +="'".concat(arr[i]).concat("'") + ',' ;
            if(i == arr.length-1)
                s.replace(',', ')');
        }

        System.out.print(s);

    }

这是我的输出('x','y','z',  我想用')'

替换最后一个逗号

4 个答案:

答案 0 :(得分:0)

s.replace(',', ')');

在这里你试图替换逗号,但java中的字符串是不可变的,这意味着你实际上是替换它,但没有将值赋给任何变量,所以它没有意义。此外,替换不会做你想的。相反,你需要:

s = s.substring(0, s.length()-1);

这将删除String中的最后一个字符(最后是额外的逗号)。然后只需将)附加到它就完成了。

答案 1 :(得分:0)

这也将起到魔​​力......

请使用StringBuilder进行这类字符串操作..

for (int i = 0; i < arr.length; i++) {
            s += "'".concat(arr[i]).concat("'") + ',';
        }

        s = s.concat(")");

        System.out.print(s.replace(",)", ")"));

答案 2 :(得分:0)

您也可以使用String.join方法:

UITabBarItem.appearance().setTitleTextAttributes([NSForegroundColorAttributeName: UIColor.white], for: .normal)

UITabBarItem.appearance().setTitleTextAttributes([NSForegroundColorAttributeName: UIColor.red, for: .selected)

答案 3 :(得分:0)

您可以使用String.formatString.join

尝试此操作
    String[] arr = { "x", "y", "z" };
    String s = String.format("('%s')", String.join("','", arr));
    System.out.println(s);

打印

('x','y','z')

修改

如果您使用的是jdk7,则可以使用StringBuilder来避免性能问题,如代码所示:

    String[] a = { "x", "y", "z" };
    StringBuilder b = new StringBuilder("(");
    for (int i = 0; i < a.length; i++) {
        b.append("'").append(String.valueOf(a[i])).append("'");
        b.append((i == a.length - 1) ? ")" : ", ");
    }
    System.out.println(b);

打印

('x','y','z')