java |如何为所有数字(0-9)生成一个变量

java |如何为所有数字(0-9)生成一个变量,java,Java,我正在用java做我的项目,在我的项目中,我需要从一些流中获取输入来解析文本,并将其逐字符转换为泛型,再转换为其他类型,其中之一是“ValueNumber” 为此,我使用了开关盒 现在,因为数字可以以“-”开头,所以我需要检查当前字符是0到9之间的数字还是“-”或其他数字 我的问题是如何生成一个变量来保存所有第10位数字?String将保存它,或者StringBuilder将保存它以获得更好的性能和性能 然后,您可以分析字符串并查看它是否与正则表达式匹配: return str.matches(

我正在用java做我的项目,在我的项目中,我需要从一些流中获取输入来解析文本,并将其逐字符转换为泛型,再转换为其他类型,其中之一是“ValueNumber”

为此,我使用了开关盒

现在,因为数字可以以“-”开头,所以我需要检查当前字符是0到9之间的数字还是“-”或其他数字


我的问题是如何生成一个变量来保存所有第10位数字?

String将保存它,或者StringBuilder将保存它以获得更好的性能和性能 然后,您可以分析字符串并查看它是否与正则表达式匹配:

return str.matches("[-]?[0-9]+");

如果为true,则为带或不带否定号的数字;如果为false,则不是您描述的数字。数字可以是字符串允许的长度。

我想你在想象这样的情况:

switch(aChar) {
   case '+':
       handlePlus();
       break;
   case ' ':
       handleSpace();
       break;
   case anyOf("-01234567890");
       handlePartOfNumber(aChar);
       break;
}
不幸的是,在Java中,
开关
并没有这么复杂<代码>开关仅处理精确匹配

您将需要使用一系列
if/else
块:

if(aChar == '+') {
      handlePlus();
} else if(aChar == ' ') {
    handleSpace();
} else if(isMinusOrDigit(aChar)) {
    handlePartOfNumber(aChar);
}
现在,我们如何实现
isMinusOrDigit(charc)

您已经询问过“某个保存所有数字的变量”。也许你指的是一个数组,或者一个
列表
或者一个
集合
。我会选择
Set
,因为它是最纯粹的“物品包,你不在乎订单”

你不能——正如答案中所解释的那样。改为使用一系列if/else语句。
private static Set<Character> MINUS_AND_DIGITS = minusAndDigits();

private static Set<Character> minusAndDigits() {
    Set<Character> set = new HashSet<>();
    for(char c = '0'; c<='9'; c++) {
        set.add(c);
    }
    set.add('-');
}

private static boolean isMinusOrDigit(char c) {
    return MINUS_AND_DIGITS.contains(c);
}
private static boolean isMinusOrDigit(char c) {
    return c == '-' || ( c >= 0 && c<=9 ); 
}