简体   繁体   中英

Java replaceALL for string

I have a string:

100-200-300-400

i want replace the dash to "," and add single quote so it become:

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

My current code only able to replace "-" to "," ,How can i plus the single quote?

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

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

You can use

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

As an alternative if you are using java 1.8 then you could create a StringJoiner and split the String by - . This would be a bit less time efficient, but it would be more safe if you take, for example, a traling - into account.

A small sample could look like this.

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);

This will work for you :

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'

Or (if you don't want to use replaceAll() twice.

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));
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM