有 Java 编程相关的问题?

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

可以将Java Retval放入数组中吗

我正在扫描一个字符串对象数组,每个字符串对象将被分解成一个正则表达式

在执行增强的for循环时,我想知道是否可以将retval放入数组中

例如,如果我有字符串regex=newstring[3]

其中正则表达式[0]=“偶数(0 | 1)*0”

增强的for循环可以将字符串对象分解为偶数和(0 | 1)*0

我希望能够在一个数组中放入偶数,在另一个数组中放入(0 | 1)*0。下面是我用字符串对象扫描字符串数组的代码

    /*
     * Run through each String object and appropriately place them in the kind,
     * and explicit.
     */
    for (int j = 0; j < regex.length; j++)
    {
        for (String retval: regex[j].split(" ", 2))
        {
            System.out.println(retval);
        }
    }

对于正则表达式[0]。split(“,2)分别返回偶数和(0 | 1)*0

或者,如果您知道如何更好地解决此问题,请告诉我: 偶数(0 | 1)*0

奇数(0 | 1)*1

宠物(猫、狗)

大写字母中的部分将放入“kind”数组,其余部分将放入另一个数组

因此,kind数组将有三个字符串,而另一个数组将有三个字符串

希望这不会太令人困惑


共 (1) 个答案

  1. # 1 楼答案

    使用Map对象存储信息可能是一个好主意,但是,如果您想将分析作为数组返回,可以返回数组数组并执行以下操作

    String[] regex = {"EVEN_BIN_NUM (0|1)*0", "ODD_BIN_NUM (0|1)*1", "PET (cat|dog)"} ;
    String[][] split = new String[regex.length][];
    
    for(int i = 0; i < regex.length; i++) {
      split[i] = regex[i].split(" ", 2);
    
    }
    

    然后,您可以按如下方式访问数据

    String firstProperty = split[0][0];   //EVEN_BIN_NUM
    String firstRegex = split[0][1];      //(0|1)*0
    
    String secondProperty = split[1][0];  //ODD_BIN_NUM
    String secondRegex = split[1][1];     //(0|1)*1
    

    等等

    或使用地图:

    Map<String, Pattern> map = new HashMap<>();
    
    for(int i = 0; i < regex.length; i++) {
      String[] splitLine = regex[i].split(" ", 2);
      map.put(splitLine[0], Pattern.compile(splitLine[1]));
    
    }
    

    这样,您的属性将直接映射到您的模式

    例如:

    Pattern petPattern = map.get("PET");