我正在解析一个字符串以检查它是否是一个日期,我们现在发现我的方法不适用于八月或九月的日期.这就是我所做的(显然,输入并不是真正的硬编码,但为了简洁起见......):
var str = '2010-08-26 14:53';
var data = str.split(' '); // ['2010-08-26', '14:53']
var date = data[0].split('-'); // ['2010', '08', '26]
var time = data[1].split(':'); // ['14', '53']
var yyyy = parseInt(date[0]); // 2010
// THIS IS WHERE STRANGE THINGS HAPPEN:
var MM = parseInt(date[1]); // 0 - not 08 or 8, as expected!
console.log(date[1]); // prints "08" (with quotes)
console.log(date[1].toString()); // prints 08 (no quotes)
console.log(parseInt(date[1].toString())); // prints 0 (!)
Run Code Online (Sandbox Code Playgroud)
这个问题出现了8,9月份和8楼和9月的每-也就是说,在任"08"或 …
我有以下问题:
我想将一些二进制字符串转换为整数:
eargb = Integer.parseInt(al + re + gre + blu, 2);
Run Code Online (Sandbox Code Playgroud)
但我得到以下例外.为什么?
java.lang.NumberFormatException: For input string: "11111111111000101000100111111010"
Run Code Online (Sandbox Code Playgroud) 我有以下简单的代码片段,用于检测给定的IPv4地址确实只有数值(即在剥离点后):
import edu.gcc.processing.exceptions.net.IPAddressNumericException;
//Get the IP address
String address = "239.255.255.255";
//Check to see if this is a number
try {
String IPNumbers = address.replace(".", "");
Integer.parseInt(IPNumbers);
} catch (NumberFormatException e) {
System.out.print(e.getMessage());
}
Run Code Online (Sandbox Code Playgroud)
由于某种原因,NumberFormatException被解雇了,我得到这个错误:
For input string: "239255255255"
Run Code Online (Sandbox Code Playgroud)
有人可以帮我理解这个吗?该parseInt()方法适用于较小的数字,例如127001.
感谢您的时间.
我正在使用parseInt()获取一些大质数,但它正如预期的那样工作.例如,
parseInt("18014398241046527", 10); // Gives me 18014398241046528??
parseInt("18014398241046528", 10); // Gives me 18014398241046528
parseInt("18014398241046529", 10); // Still gives me 18014398241046528??
Run Code Online (Sandbox Code Playgroud)
我在Chrome版本20.0.1132.47和Firefox 12.0上测试了它们.这是因为我试图解析的数字太大了吗?
所以我正在读这个:
10011011001;0110,1001,1001,0,10,11
Run Code Online (Sandbox Code Playgroud)
并在其上运行此代码:
String[] parts = line.split(";");
System.out.println("Part 1 = " + parts[0]);
System.out.println("Part 2 = " + parts[1]);
System.out.println(isNumeric(parts[0]));
int original = Integer.parseInt(parts[0]);
System.out.println("Original = " + original);
Run Code Online (Sandbox Code Playgroud)
这个isNumeric方法是我写的调试方法.
public static boolean isNumeric(String str) {
for (char c : str.toCharArray()) {
if (!Character.isDigit(c)) {
return false;
}
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
输出:
Line = 10011011001;0110,1001,1001,0,10,11
Part 1 = 10011011001
Part 2 = 0110,1001,1001,0,10,11
true
Exception in thread "main" java.lang.NumberFormatException: For input string: "10011011001"
at java.lang.NumberFormatException.forInputString(Unknown Source)
at …Run Code Online (Sandbox Code Playgroud) 据我所知,当使用2的补码,并且第一个数字为1时,则翻转数字并找到新字节的值并使其成为负数.javadoc表示Integer.parseInt(String s,radix) )和Integer.valueOf(String s,radix)都应该返回一个有符号的整数对象,但是当我用它测试它时:
System.out.println(Integer.parseInt("10000001", 2));
System.out.println(Integer.valueOf("10000001", 2));
Run Code Online (Sandbox Code Playgroud)
我明白了:
129
129
Run Code Online (Sandbox Code Playgroud)
即使我的计算得到我-127.有趣的是
System.out.println(Integer.parseInt("-10000001", 2));
Run Code Online (Sandbox Code Playgroud)
打印出来:
-129
Run Code Online (Sandbox Code Playgroud)
任何人都知道一个不同的java方法,如果你输入一个字节(和radix = 2),那么该方法将返回一个正确签名的值?
我正在创建一个Android应用程序,我正在从文本文件中读取一些坐标.
我正在使用Integer.parseInt(xCoordinateStringFromFile)将X坐标转换为整数,并以与Y坐标相同的方式转换.
当我运行应用程序时,我在该行上出现错误,如下所示:
BridgeData data = new BridgeData(
elements[0],
elements[1],
Integer.parseInt(elements[2]),
Integer.parseInt(elements[3]),
Integer.parseInt(elements[4]),
new GeoPos(Integer.parseInt(elements[5].split(",")[0]), Integer.parseInt(elements[5].split(",")[1])),
new GeoPos(Integer.parseInt(elements[6].split(",")[0]), Integer.parseInt(elements[6].split(",")[1])),
Integer.parseInt(elements[7]),
Integer.parseInt(elements[8])
);
Run Code Online (Sandbox Code Playgroud)
该变量elements是一个String数组,通过在每个上分割当前行来创建;.
"主要"错误是:
java.lang.NumberFormatException: Invalid int: "3546504756"
Run Code Online (Sandbox Code Playgroud)
我想知道这意味着什么,以及我如何解决它.
如果我不知道变量是整数数字还是十进制数字,是否有一种简单的方法将字符串解析为整数或浮点数?
a = '2'; // => parse to integer
b = '2.1'; // => parse to float
c = '2.0'; // => parse to float
d = 'text'; // => don't parse
Run Code Online (Sandbox Code Playgroud)
编辑:似乎我的问题缺乏必要的上下文:我想做一些计算而不会丢失原始格式(原始格式因此意味着整数与浮点数.我不关心原始的小数位数):
例:
String containing the formatted number ('2')
=> parse to number (2.0)
=> do some calculations (2.0 + 1 = 3.0)
=> restore "original format" ('3' and not '3.0')
如果输入是2.0,那么想要的结果将是'3.0'(不是'3').
我正在做一些计算,但无法将字符串解析为int甚至在float.I搜索解决方案,我在某处读取它必须有一个空字符串,但我检查我的editText使用
log.v("Valuee",e1.getText().toString());
Run Code Online (Sandbox Code Playgroud)
并且它打印的值证明字符串不是空的..我缺少什么?
这是logcat
java.lang.RuntimeException:无法启动活动ComponentInfo {com.example.farrukh.bmi/com.example.farrukh.bmi.Main2Activity}:java.lang.NumberFormatException:无效的int:""在android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2195)在Android.app.ActivityThread.access $ 800(ActivityThread.java:135)的android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)android.app.ActivityThread $ H.handleMessage(ActivityThread) .java:1196)android.app.Handler.dispatchMessage(Handler.java:102)android.app.Looper.loop(Looper.java:136)android.app.ActivityThread.main(ActivityThread.java:5017) at java.lang.reflect.Method.invokeNative(Native Method)at java.lang.reflect.Method.invoke(Method.java:515)at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java: 779)在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)at dalvik.system.NativeStart.main(Native Method)引起:java.lang.NumberFormatException:无效的int:""at java.lang.Integer.invalidInt(Integer.java:137)在java.lang.Integer.parseInt(Integer.java:358)java.lang.Integer.parseInt(Integer.java:331)at com.example.farrukh .bmi.Main2Activity.onCreate(Main2Activity.java:31)位于android.app.A活动中的android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)上的android.app.Activity.performCreate(Activity.java:5231).在Android.app.ActivityThread.access $ 800(ActivityThread.java:135)的android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)上的performLaunchActivity(ActivityThread.java:2159)在android.app.ActivityThread $ H.handleMessage( ActivityThread.java:1196)在Android.app.A.运行时,Android.A.Tharead.main上的android.os.Handler.dispatchMessage(Handler.java:102)android.os.Looper.loop(Looper.java:136)(ActivityThread.java:5017) )at java.lang.reflect.Method.invokeNative(Native Method)
这是MainActivity.java
public class Main2Activity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
final Button b = (Button) findViewById(R.id.button);
final EditText e1 = (EditText) findViewById(R.id.editText2);
final TextView text = (TextView) findViewById(R.id.textView4);
final String height = e1.getText().toString();
final int a = Integer.parseInt(height); //got error …Run Code Online (Sandbox Code Playgroud) 嘿伙计我在Javascript中解析字符串有问题.我有一个很大的数字(162778063615164416)作为一个字符串.这就是不和谐的用户ID的样子.现在我正在尝试将其转换为数字,但它总是返回错误的值.
运行代码段以查看它.
var qs = 'querySelector',
qsa = 'querySelectorAll';
document[qs]('input').addEventListener('input', event => {
var val = event.target.value;
document[qsa]('td')[0][qs]('input').value = parseInt(val);
document[qsa]('td')[1][qs]('input').value = Number(val);
document[qsa]('td')[2][qs]('input').value = eval(val);
})Run Code Online (Sandbox Code Playgroud)
<table style="border: solid 1px">
<thead>
<tr>
<th colspan="3"><input value="162778063615164416" style="width:98%; text-align: center"></th>
</tr>
<tr>
<th>parseInt()</th>
<th>Number()</th>
<th>eval()</th>
</tr>
</thead>
<tbody>
<tr>
<td><input id="parse" style="text-align: center" value="162778063615164400" disabled></td>
<td><input id="number" style="text-align: center" value="162778063615164400" disabled></td>
<td><input id="eval" style="text-align: center" value="162778063615164400" disabled></td>
</tr>
</tbody>
</table>Run Code Online (Sandbox Code Playgroud)
我使用了三种不同的方法来做同样的事情,它们都返回了错误的值.输出值应与输入值相同.任何人都知道,如何将这个长度的字符串转换为数字?
我正在使用Discord API for Node.js来创建一个selfbot.用户向频道发送消息,并且程序应该读取用户ID以识别它应该回复的唯一一个人.我无法在程序代码中编写ID,因为它的动态:我想将它打包成.exe,其他人(不知道JavaScript或不想安装Node.js的人)可以使用它也可以发送嵌入物并做其他很酷的东西.
parseint ×10
java ×6
javascript ×4
android ×2
binary ×2
integer ×2
class ×1
ecmascript-6 ×1
html ×1
node.js ×1
parsefloat ×1