有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

在扫描器中使用分隔符的java

Possible Duplicate:
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:我还必须确保输入是这种格式


共 (1) 个答案

  1. # 1 楼答案

    您可以使用以下代码

    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