[英]Format a string into a specific format
目前我有一個9字符串數字
String s = 123456789
我如何將這個字符串轉換成這種格式?
String newS = 12 - 34 - 5678 - 9
我希望這能幫到您。
public static String formatString(String str) {
return str.substring(0, 1) + " - " + str.substring(2, 3) + " - " + str.substring(4, 7) + " - " + str.substring(8);
}
使用Java8流,您可以獲得更干凈的版本...
String s = "123456789";
AtomicInteger pos = new AtomicInteger();
String newS = IntStream.of(2, 2, 4, 1)
.mapToObj(n -> s.substring(pos.getAndAdd(n), pos.get()))
.collect(Collectors.joining(" - "));
您可以使用正則表達式:
String s = "123456789";
Pattern pattern = Pattern.compile("(\\d{2})(\\d{2})(\\d{4})(\\d)");
Matcher matcher = pattern.matcher(s);
String formatted = matcher.find() ?
matcher.group(1) + " - " + matcher.group(2) + " - " + matcher.group(3) + " - " + matcher.group(4) :
"";
System.out.println(formatted); // 12 - 34 - 5678 - 9
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.