你好,我对阵列转换有一点问题
我想将此数组格式["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', 我想用')'
替换最后一个逗号答案 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.format
和String.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')