2013-09-23 28 views

回答

2

0#.##更換.#你可以嘗試像...

StringBuilder output = new StringBuilder(8); 
String input = "1.54.0.21"; 
Pattern p = Pattern.compile("\\d+"); 
Matcher matcher = p.matcher(input); 
while (matcher.find()) { 
    String group = matcher.group(); 
    if (group.length() < 2) { 
     output.append("0"); 
    } 
    output.append(group); 
} 

System.out.println(input); 
System.out.println(output); 

其輸出...

1.54.0.21 
01540021 
0
public String getToken(String elem) { 
    return (elem.size() == 1) ? ("0" + elem) : elem; 
} 

String[] a = "1.54.0.21".split("\\."); 
String o = "", e; 
int i = 0, len = a.size(); 
for (i = 0; i < len; i++) { 
    o = o + getToken(a[i]); 
} 
System.out.println(o); //01540021 
0

一個正則表達式的唯一功能是匹配的字符串(或多行字符串)內字符的特定圖案。 正則表達式可用於查找和替換模式,但僅用於查找您感興趣的字符串。找到它們後,Split(),Remove(),Replace()函數將更好地達到目的。

I recommend you : http://gskinner.com/RegExr/ 

這是用正則表達式匹配字符串,也學習模式的在線工具。

1

沒有正則表達式:

http://rextester.com/LGXETU62790

public static void main(String args[]) 
{ 
    String str1 = "33.5.9.6"; 
    String str2 = "1.54.0.21"; 
    System.out.println(transform(str1)); 
    System.out.println(transform(str2)); 
} 

private static String transform(String str){ 
    String[] splitted = str.split("\\."); 
    StringBuilder build = new StringBuilder(); 
    for(String s : splitted){ 
     build.append(String.format("%02d", Integer.parseInt(s))); 
    } 
    return build.toString(); 
} 
+0

+1的'String.format',不錯... – MadProgrammer