java - 在里面创建一个带有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 值(就像他/她为整数提取所做的那样)。他怎么能这样做?
解决方案
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 类型。我找不到任何关于它的文档。
推荐阅读
- cordova - 从 Phonegap 7.0.1 升级到 7.1.0 导致 ios 构建失败
- javascript - ~ 导入 scss 的符号正在 Angular 6 中的 node_modules 内搜索
- autohotkey - 在 Autohotkey 中检测 Alt+LeftMouse 单击并发送延迟双击
- postgresql - 使用动态目标列进行查询
- python - Python - 日期格式
- angular - 在组件模板中使用“this”调用变量或方法是一种好习惯吗?
- qt - 根据 listElement 键切换 listView 的委托
- pip - 无法导入gym;ModuleNotFoundError:没有名为“gym”的模块
- hadoop - 设计 MapReduce 函数以查找集合列表之间的交集
- php - 在 woocommerce 中使用 if else 评分