Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/380.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中从字符串中提取mac地址_Java - Fatal编程技术网

在java中从字符串中提取mac地址

在java中从字符串中提取mac地址,java,Java,下面是一个例子, `字符串测试=“链接/以太00:0c:29:d1:86:4e brd ff:ff:ff:ff:ff” 00:0c:29:d1:86:4e是MacAddress。 我应该如何提取MacAddress并且MacAddress的位置不是静态的 提前谢谢 String test = " link/ether 00:0c:29:d1:86:4e brd ff:ff:ff:ff:ff:ff"; String[] tokenizeString = (test.trim()).split("

下面是一个例子,
`字符串测试=“链接/以太00:0c:29:d1:86:4e brd ff:ff:ff:ff:ff”

00:0c:29:d1:86:4e是MacAddress。 我应该如何提取MacAddress并且MacAddress的位置不是静态的

提前谢谢

String test = "  link/ether 00:0c:29:d1:86:4e brd ff:ff:ff:ff:ff:ff";
String[] tokenizeString = (test.trim()).split(" ");
System.out.println(tokenizeString[1]); //From question you are intrested on this stuff only
我看这会解决你的问题


我看这会解决你的问题

最简单的方法是:

String test = " link/ether 00:0c:29:d1:86:4e brd ff:ff:ff:ff:ff:ff";
String mac = test.substring(13, 30);

但这要求测试字符串始终具有相同的模式。

最简单的方法是:

String test = " link/ether 00:0c:29:d1:86:4e brd ff:ff:ff:ff:ff:ff";
String mac = test.substring(13, 30);
但这要求测试字符串始终具有相同的模式

  • 使用删除字符串开头和结尾不必要的空格
  • 使用根据分隔符剪切字符串。这是空格字符
  • 打印第二个项(
    索引1
    )以获取您的mac地址

  • 使用删除字符串开头和结尾不必要的空格
  • 使用根据分隔符剪切字符串。这是空格字符
  • 打印第二个项(
    索引1
    )以获取您的mac地址


  • 这将处理mac地址周围任意数量的字符:

    String test = "  link/ether 00:0c:29:d1:86:4e brd ff:ff:ff:ff:ff:ff";
    String mac = null;
    Matcher m = Pattern.compile("((\\w{2}:){5}\\w{2})").matcher(test);
    if (m.find()) {
        mac = m.group();
    }
    System.out.println(mac);
    
    输出

    00:0c:29:d1:86:4e
    

    \\w
    可以替换为
    [a-fA-F0-9]
    ,如果您想排除其余字母和下划线。

    这将处理mac地址周围任意数量的字符:

    String test = "  link/ether 00:0c:29:d1:86:4e brd ff:ff:ff:ff:ff:ff";
    String mac = null;
    Matcher m = Pattern.compile("((\\w{2}:){5}\\w{2})").matcher(test);
    if (m.find()) {
        mac = m.group();
    }
    System.out.println(mac);
    
    输出

    00:0c:29:d1:86:4e
    

    \\w
    可以替换为
    [a-fA-F0-9]
    ,如果您想排除其余的字母表和下划线。

    字符串操作或任何其他数据结构最好通过使用类提供的内部方法来解决,如其他答案中所述。我通常遵循的顺序是:

    第一种方法
    trim()
    :修剪尾随和前导空格以清除字符串
    split()
    :使用给定的分隔符(在本例中为空格字符)拆分字符串。ASCII码32.

    第二种方法
    Java Util包中有一些选项供您探索。
    java.util
    :类-StringTokenizer
    java.util.regex
    :类-模式和匹配器
    考虑到您的问题背景和范围,您可以选择其中一种来提出解决方案。尽管这些课程需要一些最佳实践,您可以在这里查找或在其他简短回答中给出

    第三种方法

    使用第三方库解决您的问题。在使用第三方物流时,如积极使用、社区、测试、,许可等。Apache和Google在数据结构和领域处于领先地位,您可以使用的一个库是字符串操作或任何其他数据结构,最好通过使用类提供的内部方法来解决,如其他答案中所述。我通常遵循的顺序是:

    第一种方法
    trim()
    :修剪尾随和前导空格以清除字符串
    split()
    :使用给定的分隔符(在本例中为空格字符)拆分字符串。ASCII码32.

    第二种方法
    Java Util包中有一些选项供您探索。
    java.util
    :类-StringTokenizer
    java.util.regex
    :类-模式和匹配器
    考虑到您的问题背景和范围,您可以选择其中一种来提出解决方案。尽管这些课程需要一些最佳实践,您可以在这里查找或在其他简短回答中给出

    第三种方法


    使用第三方库解决您的问题。在使用第三方语言(如主动使用、社区、测试、许可等)时必须小心。Apache和Google在数据结构和领域处于领先地位,您可以使用的一个这样的库就是

    也提供了您尝试过的内容。什么?你能说得更具体些吗?还可以粘贴你到目前为止尝试过的代码片段。用空格修剪和拆分你的字符串。然后[1]位置应给出所需的输出。试着自己写代码!我没有尝试,我只是想找到最佳的解决方案。位置1也不能提供一个理想的解决方案。同时给出你所尝试的。什么?你能说得更具体些吗?还可以粘贴你到目前为止尝试过的代码片段。用空格修剪和拆分你的字符串。然后[1]位置应给出所需的输出。试着自己写代码!我没有尝试,我只是想找到最佳的解决方案。位置1也不能提供一个理想的解决方案。但这并不能给出正确的结果。你可以试试看,我已经更新了答案,忘记了第一部分。谢谢你@molamka实际上,我试过了,它给出了一个空字符串。你检查过你的索引了吗?@Mr.Nagar现在就用最新的答案试试。不过,这并没有给出正确的结果。你可以试试看,我已经更新了答案,忘记了第一部分。谢谢你@molamka实际上,我试过了,它给出了一个空字符串。你查过你的索引了吗?@Mr.Nagar现在就用更新的答案试试谢谢你的简要解释,我喜欢。谢谢你的简要解释,我喜欢。