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