Java 如何用变量替换静态字符串并转换为long?
我有以下代码来生成顺序Mac地址。如果在创建hextint时静态地定义字符串,那么代码运行良好。但是,如果将字符串更改为变量,如下图所示,则会出现错误: 线程“AWT-EventQueue-0”java.lang.NumberFormatException中的异常:对于输入字符串:“6CDFFB6000000A " 我肯定我错过了一些简单的东西。为什么字符串作为变量不能转换?感谢您的帮助Java 如何用变量替换静态字符串并转换为long?,java,Java,我有以下代码来生成顺序Mac地址。如果在创建hextint时静态地定义字符串,那么代码运行良好。但是,如果将字符串更改为变量,如下图所示,则会出现错误: 线程“AWT-EventQueue-0”java.lang.NumberFormatException中的异常:对于输入字符串:“6CDFFB6000000A " 我肯定我错过了一些简单的东西。为什么字符串作为变量不能转换?感谢您的帮助 String macAddr = last_mac.getText(); //
String macAddr = last_mac.getText();
// int qty = Integer.parseInt(label_qty.getText());
System.out.println("String to convert: " + macAddr);
// long hexint = Long.parseLong("6CDFFB60000000", 16);
long hexint = Long.parseLong(macAddr, 16);
System.out.println("String converted to Long:" +hexint);
System.out.println("10+ previous number:" + (10+hexint));
System.out.println("Convert back to hex: " + Long.toHexString(10+hexint).toUpperCase());
for(int i = 1; i < 10+1; i++){
System.out.println(i +" MAC: " + Long.toHexString(hexint + i).toUpperCase());
macAddr = Long.toHexString(hexint + i).toUpperCase();
}
String macAddr=last_mac.getText();
//int qty=Integer.parseInt(label_qty.getText());
System.out.println(“要转换的字符串:+macAddr”);
//long hexint=long.parseLong(“6CDFFB60000000”,16);
long-hexint=long.parseLong(macAddr,16);
System.out.println(“转换为长字符串:+hexint”);
System.out.println(“10+上一个数字:”+(10+hexint));
System.out.println(“转换回十六进制:”+Long.toHexString(10+hexint.toUpperCase());
对于(int i=1;i<10+1;i++){
System.out.println(i+“MAC:+Long.toHexString(hexint+i.toUpperCase());
macAddr=Long.toHexString(hexint+i).toUpperCase();
}
您的文本包含尾随空格。您应该通过trim()
方法将其删除。试试下面的代码&它应该适合你
String macAddr = last_mac.getText().trim();
请尝试打印出上次\u mac.getText()。对于
String macAddr=“6CDFFB6000000A”,它看起来在我的机器上运行得很好代码>对于输入字符串:“6CDFFB6000000A”
看起来您的地址末尾有一个空格。尝试trim
it遗漏了尾随空格部分。修剪后,它应该可以正常工作