我正在尝试确定字符串数组中的特定项是否为整数.
我是表单中.split(" ")'ing
的中缀表达式String
,然后尝试将结果数组拆分为两个数组; 一个用于整数,一个用于操作符,一个用于丢弃括号和其他杂项.实现这一目标的最佳方法是什么?
我以为我可以找到一种Integer.isInteger(String arg)
方法或东西,但没有这样的运气.
所以基本上用户从扫描仪输入中输入一个序列.
12, 3, 4
等
它可以是任何长的长度并且它必须是整数.
我想将字符串输入转换为整数数组.
所以int[0]
会12
,int[1]
也会3
,等等
任何提示和想法?我正在考虑实现if charat(i) == ','
获取前一个数字并将它们解析在一起并将其应用于数组中当前可用的插槽.但我不太确定如何编码.
是否有更好,更优雅(和/或可能更快)的方式
boolean isNumber = false;
try{
Double.valueOf(myNumber);
isNumber = true;
} catch (NumberFormatException e) {
}
Run Code Online (Sandbox Code Playgroud)
...?
编辑:因为我不能选择两个答案我正在使用正则表达式,因为a)它优雅而且b)说"Jon Skeet解决了问题"是一个重言式,因为Jon Skeet本身就是所有问题的解决方案.
我有:
op1 = Integer.parseInt(jTextField1.getText());
op2 = Integer.parseInt(jTextField2.getText());
Run Code Online (Sandbox Code Playgroud)
但是,我想首先检查文本字段的值是否可以分配给整数变量.我怎么做?
我已经经历了很长一段时间,所以,如果这已经在这里被问过,请原谅我
具有数(没有小数)的字符串表示,什么是将其转换为任一个最好的方式java.lang.Integer
还是java.lang.Long
和java.math.BigInteger
?唯一的条件是转换后的类型应该是保存数字所需的最小数据类型.
我这个当前的实现工作正常,但我想知道是否有更好的代码没有异常处理.
package com.stackoverflow.programmer;
import java.math.BigInteger;
public class Test {
public static void main(String[] args) {
String number = "-12121111111111111";
Number numberObject = null;
try {
numberObject = Integer.valueOf(number);
} catch (NumberFormatException nfe) {
System.out.println("Number will not fit into Integer type. Trying Long...");
try {
numberObject = Long.valueOf(number);
} catch (NumberFormatException nfeb) {
System.out.println("Number will not fit into Long type. Trying BigInteger...");
numberObject = new BigInteger(number);
}
}
System.out.println(numberObject.getClass() + " : "
+ …
Run Code Online (Sandbox Code Playgroud) 我试图检查一个特定的字符串是否是一个Int
(或Boolean
或Long
等等等等),但并不真的需要它被它解析为一个Int
(或其他).我可以想到两个选择.首先,要做一个var.toInt.toString
或只是返回toInt
调用的实际字符串,如果它是一个Int
.虽然两者都很好,但我想知道前者与后者相比是否更加广泛.仅供参考,我不会以这种方式解析非常长的字符串,但我会查看数TB的数据.
我需要检查String是否是整数.我找到了这样的解决方案:
private boolean isInteger(String str) {
try {
Integer.parseInt(str);
return true;
} catch (NumberFormatException e) {
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
没有try/catch子句,是否有更美观和正确的方法来做到这一点?
我需要编写一个处理a的类,Map<String, String[]>
根据它们的数字顺序处理它的键.为了增加对伤害的侮辱,一些键不是有效的整数,它们应该在最后以加入的词典顺序处理.
例如,如果键是:
["10", "2", "100", "duck", "black"]
Run Code Online (Sandbox Code Playgroud)
他们应该按此顺序迭代 -
["2", "10", "100", "black", "duck"]
Run Code Online (Sandbox Code Playgroud)
除了迭代和尝试捕获之外,在Java中最优雅的方法是什么NumberFormatException
?显然,我无法控制给定地图的格式.
嘿,我已经完成了我的try-catch块,但有疑问.我想计算一个字符串包含多少个单词和数字.为此,我想使用try - catch块.我将String解析为int,如果输出为false,我想计算catch块逻辑中的字数.但是在程序进入catch块后,程序退出.我想继续捕获错误后循环遍历循环.我怎样才能做到这一点?
Scanner odczyt = new Scanner(System.in);
String zdanie = odczyt.nextLine();
String[] podzdania = zdanie.split(" ");
boolean exception = false;
int numberword = 0;
try {
for (int i = 0; i < podzdania.length; i++) {
Integer.parseInt(podzdania[i]);
}
} catch (NumberFormatException e) {
numberword++;
}
Run Code Online (Sandbox Code Playgroud)