我想知道如果Integer.parseInt(无论如何)没有失败,该怎么办.
更具体地说,我有一个由换行符分隔的用户指定值的jTextArea.
我想检查每一行,看看是否可以转换为int.
想像这样的东西,但它不起作用:
for(int i = 0; i < worlds.jTextArea1.getLineCount(); i++){
if(Integer.parseInt(worlds.jTextArea1.getText(worlds.jTextArea1.getLineStartOffset(i),worlds.jTextArea1.getLineEndOffset(i)) != (null))){}
}
Run Code Online (Sandbox Code Playgroud)
任何帮助赞赏.
今天我在JavaScript中偶然发现了一个奇怪的(在我看来)案例.我将非十六进制字符串传递给parseInt函数,其基数为16,并且...得到了结果.我希望函数抛出某种异常或至少返回NaN,但它成功解析它并返回一个int.
我的电话是:
var parsed = parseInt('dsff66', 16); // note the 's' in the first argument
document.write(parsed);Run Code Online (Sandbox Code Playgroud)
结果是:13.
我注意到它"停止"解析第一个不属于第二个参数中指定的数字系统的字符,所以调用parseInt('fg',16)我会得到15结果.
在我看来,它应该返回NaN.任何人都可以向我解释为什么不呢?为什么有人希望这个函数表现得像这样(即使它不是传递的字符串的精确表示,也返回一个整数)?
任何人都可以解释parseInt()函数如何工作以及Radix参数是什么?
作为案例研究,我试图掌握这段代码:
var maxChars = parseInt( formField.attr('maxlength') ? formField.attr('maxlength') : counter.text() );
Run Code Online (Sandbox Code Playgroud)
你能解释一下这段代码是如何工作的吗?为什么formField.attr('maxlength')有两次?我觉得这里运营商的使用相当令人困惑!
Radix参数如何在此示例中起作用?
如何在没有javascript舍入的情况下将长整数(作为字符串)转换为Javascript中的数字格式?
var ThisInt = '9223372036854775808'
alert(ThisInt+'\r' +parseFloat(ThisInt).toString()+'\r' +parseInt(ThisInt).toString());
Run Code Online (Sandbox Code Playgroud)
我需要在将它作为一个字符串强制转换之前对其执行添加,并且如果可能的话,我不希望将它切成两半.
我正在研究javascript,我似乎发现这很奇怪,javascript函数parseInt('08')返回0而parseInt('07')返回7.
这种行为似乎在Firefox中存在.
parseInt('08')在IE中返回8,但在Firefox中返回0 ..
为什么?我希望parseInt('08')按预期返回8,并进入IE.
我有一个String和一个int,让我们说:String str = "12345";和int num = 12345;.查看它们是否相同的最快方式是什么,str.equals("" + num)或者num == Integer.parseInt(str)(或者有更快的方式?)?
当我运行parseInt时:
Integer.parseInt(myString);
Run Code Online (Sandbox Code Playgroud)
它抛出:
NumberFormatException: For input string: ""
Run Code Online (Sandbox Code Playgroud)
这是否意味着我做了这样的事情?
if(StringUtils.isNotBlank(myString))
return Integer.parseInt(myString);
else
return 0;
Run Code Online (Sandbox Code Playgroud) 从DOM中提取数字并使用它们进行计算时,我必须遵循哪条规则?javascript如何知道值是否为数字?我应该总是使用parseInt吗?
鉴于以下代码:
HTML
<div id="myvalue">5</div>
<div id="withParseInt"></div>
<div id="withoutParseInt"></div>
<div id="withoutParseIntButIncrement"></div>
Run Code Online (Sandbox Code Playgroud)
JS和jQuery:
var value = $('#myvalue').text();
$('#withParseInt').text(parseInt(value) + 1);
$('#withoutParseInt').text(value + 1);
$('#withoutParseIntButIncrement').text(value++);
Run Code Online (Sandbox Code Playgroud)
给出以下输出:
5
6
51
5
Run Code Online (Sandbox Code Playgroud)
我试着通过以下jsperf来探测加号(+)转换比parseInt更快,结果让我感到惊讶:
准备代码
<script>
Benchmark.prototype.setup = function() {
var x = "5555";
};
</script>
Run Code Online (Sandbox Code Playgroud)
解析样本
var y = parseInt(x); //<---80 million loops
Run Code Online (Sandbox Code Playgroud)
加样品
var y = +x; //<--- 33 million loops
Run Code Online (Sandbox Code Playgroud)
原因是因为我使用"Benchmark.prototype.setup"来声明我的变量,但我不明白为什么
见第二个例子:
<script>
Benchmark.prototype.setup = function() {
x = "5555";
};
</script>
Run Code Online (Sandbox Code Playgroud)
解析样本
var y = parseInt(x); //<---89 million loops
Run Code Online (Sandbox Code Playgroud)
加样品
var y = +x; //<--- 633 million loops
Run Code Online (Sandbox Code Playgroud)
有人能解释一下结果吗?
谢谢
parseint ×10
javascript ×7
java ×3
string ×3
performance ×2
comparison ×1
integer ×1
jquery ×1
jtextarea ×1
radix ×1