Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/338.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_Delimiter - Fatal编程技术网

Java 如何识别字符条目是否为两位数或更多位数?

Java 如何识别字符条目是否为两位数或更多位数?,java,delimiter,Java,Delimiter,我的意思是,如果我有一个由空格分隔的数组,我如何区分两个连续字符是否是两个或更多的数字? 请相信我,我对一般编程还是相当陌生的 这就是我到目前为止所做的: import java.util.*; public class calc { public static String itemList; public static String str; public static void main(String[] args)

我的意思是,如果我有一个由空格分隔的数组,我如何区分两个连续字符是否是两个或更多的数字? 请相信我,我对一般编程还是相当陌生的

这就是我到目前为止所做的:

import java.util.*;
    public class calc 
    {
        public static String itemList;
        public static String str;
        public static void main(String[] args) 
        {
            Scanner sc = new Scanner(System.in);
            str = sc.nextLine();
            delimitThis();
            sc.close();
        }
        public static void delimitThis()// Delimiter to treat variable and                 numbers as seperate
        {
            List<String> items = Arrays.asList(str.split("\\s+"));
            System.out.println(items);

            for (int i = 0; i < str.length(); i++) 
             {
                    itemList = items.get(i);
                    category();

             }  
        }
        public static void category()////For Filtering between vars and constants and functions
        {
            for (int x = 0; x < itemList.length(); x++)
            {
               char ite = itemList.charAt(x);
        if(Character.isDigit(ite))
        {
            System.out.println(ite + "is numeric"); //Will be replaced by setting of value in a 2 dimensional list
            }
        }
    }
import java.util.*;
公共类计算
{
公共静态字符串itemList;
公共静态字符串str;
公共静态void main(字符串[]args)
{
扫描仪sc=新的扫描仪(System.in);
str=sc.nextLine();
划界这个();
sc.close();
}
public static void differthis()//将变量和数字分开处理的分隔符
{
列表项=数组.asList(str.split(\\s+));
系统输出打印项次(项);
对于(int i=0;i
要检查字符串是否至少是2位数字,请使用以下正则表达式:
\d{2,}

public static boolean is2OrMoreDigits(String s) {
    Pattern p = Pattern.compile("\\d{2,}");
    return o.matcher(s).matches();
}

首先,我想纠正你的错误:

错误1:

// bad
for (int i = 0; i < str.length(); i++) 
{
    itemList = items.get(i);
    category();
}  
错误2:

for (int x = 0; x < itemList.length(); x++)
{
   System.out.println(itemList);
}
错误处理完毕。现在检查字符串是否包含两位数或更多,我们可以使用
string.matches()
和:

最终代码如下所示:

import java.util.*;
public class Calc
{
    public static String itemList;
    public static String str;
    public static void main(String[] args)
    {
        Scanner sc = new Scanner(System.in);
        str = sc.nextLine();
        delimitThis();
        sc.close();
    }
    public static void delimitThis()// Delimiter to treat variable and numbers as seperate
    {
        List<String> items = Arrays.asList(str.split("\\s+"));
        System.out.println(items);

        for (int i = 0; i < items.size(); i++)
        {
            itemList = items.get(i);
            category();
        }
    }
    public static void category()////For Filtering between vars and constants and functions
    {
        for (int x = 0; x < itemList.length(); x++)
        {
            System.out.println(itemList.charAt(x));
        }

        // is 2 digit number or not?
        if(itemList.matches("\\d\\d+")){
            System.out.println(itemList + " is a two or more digit number");
        }else{
            System.out.println(itemList + " is NOT a two or more digit number");
        }
    }
}
import java.util.*;
公共类计算
{
公共静态字符串itemList;
公共静态字符串str;
公共静态void main(字符串[]args)
{
扫描仪sc=新的扫描仪(System.in);
str=sc.nextLine();
划界这个();
sc.close();
}
public static void differthis()//将变量和数字分开处理的分隔符
{
列表项=数组.asList(str.split(\\s+));
系统输出打印项次(项);
对于(int i=0;i
你到底想用这个()函数做什么?我想做一个代数表达式计算器,在开始变量和函数管理之前,我已经准备好了。“如果一个字符条目是两位数或更多位数?”您可能是指
字符串
。我建议您使用正则表达式立即获取下一个数字字符串。不,我指的是字符,如果是两个连续字符(数组中的不同元素)在一个数组中是数字,里面没有空格,我想在一个单独的列表中将这些数组元素设置为int。@cosmicXD问题是,我在你的代码中没有看到任何
char[]
。实际上,我不知道你的代码在做什么。
for (int x = 0; x < itemList.length(); x++)
{
   System.out.println(itemList.charAt(x));
}
if(itemList.matches("\\d\\d+")){
    System.out.println(itemList + " is a two or more digit number");
}else{
    System.out.println(itemList + " is NOT a two or more digit number");
}
import java.util.*;
public class Calc
{
    public static String itemList;
    public static String str;
    public static void main(String[] args)
    {
        Scanner sc = new Scanner(System.in);
        str = sc.nextLine();
        delimitThis();
        sc.close();
    }
    public static void delimitThis()// Delimiter to treat variable and numbers as seperate
    {
        List<String> items = Arrays.asList(str.split("\\s+"));
        System.out.println(items);

        for (int i = 0; i < items.size(); i++)
        {
            itemList = items.get(i);
            category();
        }
    }
    public static void category()////For Filtering between vars and constants and functions
    {
        for (int x = 0; x < itemList.length(); x++)
        {
            System.out.println(itemList.charAt(x));
        }

        // is 2 digit number or not?
        if(itemList.matches("\\d\\d+")){
            System.out.println(itemList + " is a two or more digit number");
        }else{
            System.out.println(itemList + " is NOT a two or more digit number");
        }
    }
}