Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在java中使用正则表达式拆分一个大数字?_Java_Regex - Fatal编程技术网

如何在java中使用正则表达式拆分一个大数字?

如何在java中使用正则表达式拆分一个大数字?,java,regex,Java,Regex,这是我的电话号码“1508261”。 最后,我想要一个列表(“15”、“08”、“261”)。 也就是说,模式应始终创建两个新数字,每个数字中有两个数字,其余数字应全部包含在最后一个(第三个)数字中 我尝试使用这种方法,但它返回(“1508261”): Pattern-Pattern=Pattern.compile(([0-9]{2})([0-9]{2})([0-9]{1,})”; Matcher Matcher=pattern.Matcher(“1508261”); ArrayList=新建A

这是我的电话号码“1508261”。 最后,我想要一个列表(“15”、“08”、“261”)。 也就是说,模式应始终创建两个新数字,每个数字中有两个数字,其余数字应全部包含在最后一个(第三个)数字中

我尝试使用这种方法,但它返回(“1508261”):

Pattern-Pattern=Pattern.compile(([0-9]{2})([0-9]{2})([0-9]{1,})”;
Matcher Matcher=pattern.Matcher(“1508261”);
ArrayList=新建ArrayList();
while(matcher.find()){
添加(matcher.group());
}

您的代码片段根据输入字符串测试整个模式,而不是单独测试每组。您可能希望使用
Matcher.matches()
Matcher.group(int)
而不是
Matcher.find()

Pattern-Pattern=Pattern.compile(([0-9]{2})([0-9]{2})([0-9]{1,})”;
Matcher Matcher=pattern.Matcher(“1508261”);
ArrayList=新建ArrayList();
if(matcher.matches()){

对于(int i=1;i您的代码片段针对输入字符串测试整个模式,而不是单独测试每个组。您可能希望使用
Matcher.matches()
Matcher.group(int)
而不是
Matcher.find()

Pattern-Pattern=Pattern.compile(([0-9]{2})([0-9]{2})([0-9]{1,})”;
Matcher Matcher=pattern.Matcher(“1508261”);
ArrayList=新建ArrayList();
if(matcher.matches()){

对于(int i=1;i)您使用正则表达式有什么原因吗?为什么不使用简单的子字符串操作?@RyanS可能输入的前导字符不是数字。您使用正则表达式有什么原因吗?为什么不使用简单的子字符串操作?@RyanS可能输入的前导字符不是数字。
Pattern pattern = Pattern.compile("([0-9]{2})([0-9]{2})([0-9]{1,})");    
Matcher matcher = pattern.matcher("1508261");
    ArrayList<String> list = new ArrayList<String>();
    while (matcher.find()) {
       list.add(matcher.group());
    }
    Pattern pattern = Pattern.compile("([0-9]{2})([0-9]{2})([0-9]{1,})");    
    Matcher matcher = pattern.matcher("1508261");
    ArrayList<String> list = new ArrayList<String>();
    if(matcher.matches()) {
        for(int i = 1;i <= matcher.groupCount();i++)
            list.add(matcher.group(i));
    }

    System.out.println(list);