Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.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-字符串是否有类似于hasNextInt()或hasNextDouble()的方法?我想检查用户输入是否只是文本而不是数字_Java - Fatal编程技术网

Java-字符串是否有类似于hasNextInt()或hasNextDouble()的方法?我想检查用户输入是否只是文本而不是数字

Java-字符串是否有类似于hasNextInt()或hasNextDouble()的方法?我想检查用户输入是否只是文本而不是数字,java,Java,我对Java非常陌生,当我试图检查用户输入是否是文本、字符串而不是数字时,我被卡住了。hasNext,next,nextLine不一定要检查字符串,所以我不知道怎么做 import java.util.Scanner; public class CalculateOne { public static void main(String[] args) { System.out.print("Enter a or b"); S

我对Java非常陌生,当我试图检查用户输入是否是文本、字符串而不是数字时,我被卡住了。hasNext,next,nextLine不一定要检查字符串,所以我不知道怎么做

import java.util.Scanner;
    public class CalculateOne {
        public static void main(String[] args) {
            System.out.print("Enter a or b");
            Scanner scan = new Scanner(System.in);
            boolean isItString = scan.hasNextLine();
        while (! isItString) {
            System.out.print("Invalid Input! \n");
            scan.next();
        }
        String type = scan.nextLine();
        System.out.println("you chose "+type);
    }

}

您需要使用的是hasNextString或hasNextPattern方法。这些测试使用当前分隔符设置的下一个标记是否与正则表达式匹配。有相应的next方法用于使用令牌

有关详细信息,请参见扫描仪的

因此,您唯一要做的就是实现正则表达式以匹配您的非数字标记


您也可以调用next来获取下一个令牌,并测试它是否有数字。但这将消耗令牌。

将您的输入作为字符串,并检查输入是数字还是字符串

static boolean isNumber(String s) 
        { 
            for (int i = 0; i < s.length(); i++) 
            if (Character.isDigit(s.charAt(i))  
                == false) 
                return false; 

            return true; 
        }