2013-04-06 26 views
1

快速提問:我想用period(。)作爲分隔符來分割一個IP地址(例如192.168.0.1)。我似乎無法做到。我試着運行不同的場景,看看我的大腦是否功能障礙,但在數字而不是時段之間放置空格時似乎都很好。我如何成功地做到這一點?分母(分母不運作)

這是我用來運行它的一段腳本。

String ipAddress = "10.0.0.2"; 
String[] split = ipAddress.split("."); 
//It's supposed to split into four parts and each part needs to be assigned to a var 
String Part1 = split[0]; 
String Part2 = split[1]; 
String Part3 = split[2]; 
String Part4 = split[3]; 
//Just to make sure that it worked... 
System.out.println(Part1 + " " + Part2 + " " + Part3 + " " + Part4); 

在您質疑我的知識之前,我正在學習新的Java函數,有時我無法使其工作。

保持真棒!

回答

1

有是在Java IP地址的交易,讓您獲得適當的代表不分析自己的字符串類:

InetAddress a = InetAddress.getByName("10.0.0.2"); 
byte[] b = a.getAddress(); 
System.out.println(b[0]+" "+b[1]+" "+b[2]+" "+b[3]); 
+0

這兩個選項(這個答案和[user_CC的答案](http://stackoverflow.com/a/15851375/1065197))都在可能的重複問題的答案中涵蓋 – 2013-04-06 13:19:49

+0

謝謝!這比split()函數的效果更好! – 2013-04-06 13:37:13

1

嘗試

String[] split = ipAddress.split("\\."); 

split()方法接受一個正則表達式,而不是一個字符串,DOT在正則表達式有特殊的意義。所以你需要用雙斜線來逃避它。

或者你可以使用Pattern.quote

String[] split = ipAddress.split(Pattern.quote(".")); 
+0

謝謝,這正是我想要的。 – 2013-04-06 13:35:33

1

試試這個

String parts[] = ipAddress.split("\\.") //this is double back slash 
0

使用 String parts[] = ipAddress.split("\\.")