首页 > 解决方案 > 在里面创建一个带有mac地址的字符串

问题描述

我想发送一个包含 2 个 int 值和一个 mac 地址的字符串消息。我的意思是这样的:

String loadMessage = String.format("LoadOn %1$d %2$d %3$?", nodeid, sum, macAddress)

macAddress 变量是 MacAddress 类型:org.projectfloodlight.openflow.types.MacAddress

我应该放%3$?什么?我知道对于整数值,我们使用 %d,那么 mac 地址呢?

当我的接收者收到此消息时,它如何拆分消息以找出 mac 地址?我的意思是,例如,要找出整数的 nodeid 值,我们可以这样做:

String[] partss = message.split(" ");
int id = Integer.parseInt(partss[1]);

接收者已经得到了这个字符串,并想从这个字符串中提取 macAddress 值(就像他/她为整数提取所做的那样)。他怎么能这样做?

标签: javastring

解决方案


MacAddress 类型需要某种 .toString() 方法才能正确放置在所需的字符串中。否则,您将不得不通过单独的方法将其传递给接收者,而不是将其包含在字符串中。

如果您可以将您的 MAC 地址作为字符串传递并在接收端将其拆分并从那里解析。如果您要按照自己的趋势获取“nodeid”并将其存储在字符串或 int 数组中:

字符串数组:

// Assuming partss[3] = "AA:AA:AA:AA:AA:AA" 
String[] mac = partss[3].split(":");

直接到 int 数组:

int[] mac = Arrays.stream(loadMessage[3].split(":"))
    .mapToInt(Integer::parseInt).toArray(); 

否则,您可以直接将其作为字符串并在接收端重新创建另一个 MacAddress 类型。我找不到任何关于它的文档。


推荐阅读