Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.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(Android)中字符串拆分的问题_Java_Android_String - Fatal编程技术网

java(Android)中字符串拆分的问题

java(Android)中字符串拆分的问题,java,android,string,Java,Android,String,当我运行这个程序时,它是android应用程序的一部分,可以正常工作 字符串[]十六进制=新字符串[6]; 十六进制[0]=A4; 十六进制[1]=8A; 十六进制[2]=5B; 十六进制[3]=9O; 十六进制[4]=U4; 十六进制[5]=D8; 如果十六进制长度!=6 { 抛出新的IllegalArgumentException有效MAC地址。; } 试一试{ 对于int i=0;i

当我运行这个程序时,它是android应用程序的一部分,可以正常工作

字符串[]十六进制=新字符串[6]; 十六进制[0]=A4; 十六进制[1]=8A; 十六进制[2]=5B; 十六进制[3]=9O; 十六进制[4]=U4; 十六进制[5]=D8; 如果十六进制长度!=6 { 抛出新的IllegalArgumentException有效MAC地址。; } 试一试{ 对于int i=0;i<6;i++{ 字节[i]=字节整数.parseInthex[i],16; } } 捕获数格式{ 在MAC地址中抛出新的IllegalArgumentExceptionValid十六进制数字。; } 但如果我这样做:

字符串[]hex=macStr.split\\:\ \ \-; 如果十六进制长度!=6 { 抛出新的IllegalArgumentException有效MAC地址。; } 试一试{ 对于int i=0;i<6;i++{ 字节[i]=字节整数.parseInthex[i],16; } } 捕获数格式{ 在MAC地址中抛出新的IllegalArgumentExceptionValid十六进制数字。; } 它不起作用。。。 我试着找出问题的地方,好像第一个十六进制和第二个不一样;但是如果我打印,它们看起来是相同的。

使用masStr.split[:\\-]围绕“-”和“:”符号进行拆分。
如果它不工作,我只是测试它以防万一-它工作-检查您的输入

您正在解析一个mac地址,格式为xx-xx-xx-xx-xx或yy:yy:yy:yy:yy 你的拆分方法很有效。但在这里您可能会错过数组的初始化。数组是固定长度的。它应该用大小来定义

byte[] bytes;
        String macStr="ab:ab-cd:ab:ab-cd";
        String[] hex = macStr.split("(\\:|\\-)");
        System.out.println(hex.length);
        if (hex.length != 6) {
            throw new IllegalArgumentException("Invalid MAC address.");

        }
        try {
            bytes=new byte[6];
            for (int i = 0; i < 6; i++) {

                bytes[i] = (byte) Integer.parseInt(hex[i], 16);
            }
        }
        catch (NumberFormatException e) {
            throw new IllegalArgumentException("Invalid hex digit in MAC address.");
        }

变量macStr包含什么?