Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何用变量替换静态字符串并转换为long?_Java - Fatal编程技术网

Java 如何用变量替换静态字符串并转换为long?

Java 如何用变量替换静态字符串并转换为long?,java,Java,我有以下代码来生成顺序Mac地址。如果在创建hextint时静态地定义字符串,那么代码运行良好。但是,如果将字符串更改为变量,如下图所示,则会出现错误: 线程“AWT-EventQueue-0”java.lang.NumberFormatException中的异常:对于输入字符串:“6CDFFB6000000A " 我肯定我错过了一些简单的东西。为什么字符串作为变量不能转换?感谢您的帮助 String macAddr = last_mac.getText(); //

我有以下代码来生成顺序Mac地址。如果在创建hextint时静态地定义字符串,那么代码运行良好。但是,如果将字符串更改为变量,如下图所示,则会出现错误:

线程“AWT-EventQueue-0”java.lang.NumberFormatException中的异常:对于输入字符串:“6CDFFB6000000A "

我肯定我错过了一些简单的东西。为什么字符串作为变量不能转换?感谢您的帮助

    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遗漏了尾随空格部分。修剪后,它应该可以正常工作