2012-09-15 124 views
-1

可能重复:
Regular Expression Matching -Java使用分隔符

我使用的扫描仪一个FileInputStream。我需要提取这种形式的输入:
(int,int)(int,int)
我需要将这4个数字存储在一个数组中。
我试过使用分隔符来做到这一点,但它似乎并没有工作!
in是扫描仪对象。

in.useDelimiter("(* | * , * | *) *"); 
int[] x = new int[4]; 
int k = 0; 
while (in.hasNext() && k<4) 
{ 
if(in.hasNextInt()) 
{ 
    x[k] = in.nextInt(); 
    k++; 
} 
else if(in.next("nil").equalsIgnoreCase("nil")) 
{ 
    x[k] = 0; 
    k++; 
} 
} 

任何帮助,将不胜感激!谢谢!

编辑1:我也必须确保输入是这种格式。

+3

看到这个:http://stackoverflow.com/questions/12424229/regular-expression-matching-java –

回答

0

您可以使用下面的代码。

String x = "(10,56)(2,8)(100,5)"; 

String arr[] = x.replaceAll("[(|)]","").split(","); 
    for(int i=0;i<arr.length;i++){ 
     System.out.println(arr[i]); 
    } // give u perfect result 

or 

String arr[]=x.split("[(d,d)]"); 
for(int i=0;i<arr.length;i++){ 
     System.out.println(arr[i]); 
    } // result with some whitespce