2012-09-15 3 views
-1

가능한 중복 :
Regular Expression Matching -Java사용 구분

내가 스캐너에 FileInputStream에 사용하고 있습니다.
이 형식의 입력을 추출해야합니다.
(int, int) (int, int)
배열에 4 개의 숫자를 저장해야합니다.
구분 기호를 사용하여이 작업을 시도했지만 작동하지 않는 것 같습니다! 스캐너 개체는
입니다.

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

아무 도움이됩니다. 감사!

Edit1 : 또한 입력이이 형식으로되어 있는지 확인해야합니다.

+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 
관련 문제