用于字符串的Java replaceALL

时间:2015-11-13 08:13:01

标签: java string replaceall

我有一个字符串:

100-200-300-400

我想将短划线更换为","并添加单引号,使其成为:

 '100','200','300','400'

我目前的代码只能替换" - "到"," ,我怎么能加上单引号?

String str1 = "100-200-300-400";      
split = str1 .replaceAll("-", ",");

if (split.endsWith(",")) 
{
   split = split.substring(0, split.length()-1);
}

3 个答案:

答案 0 :(得分:4)

您可以使用

split = str1 .replaceAll("-", "','");
split = "'" + split + "'";

答案 1 :(得分:1)

如果您使用的是Java 1.8,那么您可以创建一个StringJoiner并将字符串拆分为-。这样会节省时间,但如果考虑使用例如-,则会更安全。

小样本看起来像这样。

String string = "100-200-300-400-";
String[] splittet = string.split("-");
StringJoiner joiner = new StringJoiner("','", "'", "'");
for(String s : splittet) {
    joiner.add(s);
}
System.out.println(joiner);

答案 2 :(得分:0)

这对你有用:

public static void main(String[] args) throws Exception {
    String s = "100-200-300-400";
    System.out.println(s.replaceAll("(\\d+)(-|$)", "'$1',").replaceAll(",$", ""));
}

O / P:

'100','200','300','400'

或(如果您不想两次使用replaceAll()

public static void main(String[] args) throws Exception {
    String s = "100-200-300-400";
    s = s.replaceAll("(\\d+)(-|$)", "'$1',");
    System.out.println(s.substring(0, s.length()-1));
}