问候,
我正在尝试验证我的整数是否为空.如果是,我需要提示用户输入值.我的背景是Perl,所以我的第一次尝试看起来像这样:
int startIn = Integer.parseInt (startField.getText());
if (startIn) {
JOptionPane.showMessageDialog(null,
"You must enter a number between 0-16.","Input Error",
JOptionPane.ERROR_MESSAGE);
}
Run Code Online (Sandbox Code Playgroud)
这不起作用,因为Java期望布尔逻辑.
在Perl中,我可以使用"exists"来检查散列/数组元素是否包含以下数据:
@items = ("one", "two", "three");
#@items = ();
if (exists($items[0])) {
print "Something in \@items.\n";
}
else {
print "Nothing in \@items!\n";
}
Run Code Online (Sandbox Code Playgroud)
在Java中有这种方法吗?谢谢您的帮助!
耶利米
PS Perl 存在信息.
我如何进行"零填充"整数?
即
1 becomes 0001
40 becomes 0040
174 becomes 0174
Run Code Online (Sandbox Code Playgroud) 给出以下代码:
char x = '5';
int a0 = x - '0'; // 0
int a1 = Integer.parseInt(x + ""); // 1
int a2 = Integer.parseInt(Character.toString(x)); // 2
int a3 = Character.digit(x, 10); // 3
int a4 = Character.getNumericValue(x); // 4
System.out.printf("%d %d %d %d %d", a0, a1, a2, a3, a4);
Run Code Online (Sandbox Code Playgroud)
(第4版记入:卡萨布兰卡)
您认为将char转换为int 的" 最佳方法 "是什么?(" 最佳方式 "〜= 惯用方式)
我们不是转换char的实际数值,而是转换表示的值.
例如.:
convert('1') -> 1
convert('2') -> 2
....
Run Code Online (Sandbox Code Playgroud) System.out.println(Integer.MAX_VALUE + 1 == Integer.MIN_VALUE);
是真的.
我知道Java中的整数是32位,不能超过2 ^ 31-1,但我不明白为什么在MAX_VALUE中加1会导致MIN_VALUE而不是某种异常.没有像Ruby那样透明地转换为更大的类型.
是否在某处指定了此行为?我可以依靠它吗?
在Python中,有一种方法可以1.0转换为整数,1而同一函数会忽略该整数1.5并将其保留为float?
现在,int()将1.0变成,1但也将1.5向下舍入到1,这不是我想要的。
我如何编写magic下面的功能?
>>> num = 123
>>> lst = magic(num)
>>>
>>> print lst, type(lst)
[1, 2, 3], <type 'list'>
Run Code Online (Sandbox Code Playgroud) 我有以下代码:
l = ['-1.2', '0.0', '1']
x = 100.0
for i in l:
if i < x:
x = i
print x
Run Code Online (Sandbox Code Playgroud)
代码应该找到我的列表中的最低值(-1.2),但是当我打印'x'时它发现值仍然是100.0我的代码出错在哪里?
为什么Integer "="运算符不适用于128和Integer值之后?有人可以解释这种情况吗?
这是我的Java环境:java版"1.6.0_37"
Java(TM)SE运行时环境(版本1.6.0_37-b06)
Java HotSpot(TM)64位服务器VM(内置20.12-b01,混合模式)
示例代码:
Integer a;
Integer b;
a = 129;
b = 129;
for (int i = 0; i < 200; i++) {
a = i;
b = i;
if (a != b) {
System.out.println("Value:"+ i + " - Different values");
} else {
System.out.println("Value"+ i + " Same values");
}
}
Run Code Online (Sandbox Code Playgroud)
控制台输出的一部分:
Value:124 - Same values
Value:125 - Same values
Value:126 - Same values
Value:127 - Same values
Value:128 - Different values
Value:129 …Run Code Online (Sandbox Code Playgroud) 我有一串数字,如:
example_string = '0, 0, 0, 11, 0, 0, 0, 0, 0, 19, 0, 9, 0, 0, 0, 0, 0, 0, 11'
Run Code Online (Sandbox Code Playgroud)
我想将其转换为列表:
example_list = [0, 0, 0, 11, 0, 0, 0, 0, 0, 19, 0, 9, 0, 0, 0, 0, 0, 0, 11]
Run Code Online (Sandbox Code Playgroud)
我尝试过类似的东西:
for i in example_string:
example_list.append(int(example_string[i]))
Run Code Online (Sandbox Code Playgroud)
但这显然不起作用,因为字符串包含空格和逗号.但是,删除它们不是一种选择,因为像"19"这样的数字会被转换为1和9.你能帮我解决这个问题吗?
我知道这样的话题被问过好几次,但我的问题是关于整个32位int的溢出.例如:
11111111111111111111111111111111 +
00000000000000000000000000000001 =
00000000000000000000000000000000 //overflow!
Run Code Online (Sandbox Code Playgroud)
我找到了类似问题的主题,但算法并不完美.
11111111111111111111111111111111 +
00000000000000000000000000000000 =
00000000000000000000000000000000 //overflow!
Run Code Online (Sandbox Code Playgroud)
有没有简单快捷的方法来检查这个?
java integer bit-manipulation integer-overflow integer-arithmetic