首页 > 解决方案 > 如何从“%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 中做到这一点?

标签: java

解决方案


推荐阅读