java - 如何从“%d %s %f”之类的格式化字符串中获取类类型?在爪哇
问题描述
我尝试使用格式化字符串和参数制作完整的字符串,但我不知道参数的类型。
所以,我需要一种从“abc %d %f %s”之类的格式化字符串中获取类型的方法。
List<SomethingForType> parseTypeFromString(String formattedString) {
List<SomethingForType> type = new ArrayList<>();
...
// how to determine a type?
if (string.equals("%d")) type.add(Integer)
...
return type
}
void sample(String str, SomethingForParameter[] parameters) {
Type[] types = parseTypeFromString(str);
List<Object> params = new ArrayList<>();
for (int i = 0; i < types.length; i++) {
switch (types[i]) {
case Integer:
params.add(parameters[i].getInt());
break;
case String:
params.add(parameters[i].getString());
break;
case Float:
params.add(parameters[i].getFloat());
break;
....
}
}
String completeString = String.format(str, params.toArray());
}
有没有一种简单的方法可以在 Java 中做到这一点?
解决方案
推荐阅读
- python - Freeswitch 报告挂钩
- javascript - 如何在剃刀视图中使用 Javascript 拆分('@')脚本?
- javascript - 点击登录时问号添加到网址
- javascript - 使用纯 javascript 从 JSON Url 读取数据并以 HTML 格式显示
- android - 反应本机应用程序中的静默推送通知
- javascript - JavaScript:命名空间与作用域
- cassandra - Cassandra 查询超时,当明确指定为 LOCAL_QUORUM 时将一致性视为 ALL
- java - 如何将“+999999999-12-31T23:59:59.999999999”,以字符串形式存储的 OffsetDateTime 的最大值转换为 LocalDate
- django - Django 比较两个查询集并根据这些值创建一个列表,并为每个项目添加附加数据
- ios - 如何对sceneView中节点的子节点进行hitTest?