【问题标题】:UnknownFormatConversionException: Conversion = ' ' [duplicate]UnknownFormatConversionException:转换=''[重复]
【发布时间】:2020-08-11 00:41:31
【问题描述】:

首先,感谢您花时间解决这个问题。我根据自己的知识尝试过,但找不到修改的地方。我做了一个游戏,最后我必须将格式化的字符串返回到终端。

当我将基本字符串连接更改为格式化字符串时出现异常。我不知道如何解决它。

  1. players 是播放器数组。
  2. WinRatioscore(int) 除以gamePlayed(int),四舍五入为整数。

这是我的代码的一部分。

public static void searchAndPrintRankingDataDesc() {
    NimPlayer [] players = NimPlayer.getPlayer();
    Arrays.sort(players, Comparator.comparing((NimPlayer::getWinRatio)).reversed().thenComparing(NimPlayer::getUserName));
    Arrays.stream(players).forEach(System.out::println);

还有我的 toString 方法:

public String getWinRatio() {
    return Integer.toString(Math.round(Float.valueOf(getScore())/ (getGamePlayed())*100));
}

public String toString() {
    return String.format( "%02d" +"% | "+ "%02d" +" games | "+ "%s " + "%s", getWinRatio(), gamePlayed, givenName, familyName);
}

【问题讨论】:

  • 谢谢,但还有另一个用于 illegerConversion 的弹出窗口。我将 getWinRatio 改回 int 类型。问题解决了。谢谢@Renato

标签: java tostring


【解决方案1】:

% 是 String.format 的特殊字符,要转义 %,您必须将其替换为 %%。所以你的陈述变成-

String.format( "%02d" +"%% | "+ "%02d" +" games | "+ "%s " + "%s", getWinRatio(), gamePlayed, givenName, familyName);

【讨论】:

    【解决方案2】:

    在格式化字符串中使用% 时,必须使用另一个% 对其进行转义。并且在格式化整数值时,如果已经有toString方法,会得到IllegalFormatConversionException

    这里的代码将整数格式化为字符串。

    public String getWinRatio() {
    return Integer.toString(Math.round(Float.valueOf(getScore())/ (getGamePlayed())*100));
    

    }

    并且下面的代码再次格式化,导致IllegalFormatConversionException

    public String toString() {
    return String.format( "%02d" +"% | "+ "%02d" +" games | "+ "%s " + "%s", getWinRatio(), gamePlayed, givenName, familyName);
    

    }

    所以,答案是:

    public int getWinRatio() {
        return Math.round(Float.valueOf(getScore())/ (getGamePlayed())*100);
    }
    public String toString() {
        return String.format( "%02d" +"%%" + " | "+ "%02d" +" games | "+ "%s " + "%s", getWinRatio(), gamePlayed, givenName, familyName);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-29
      • 2013-10-17
      • 2013-05-22
      • 2011-04-08
      相关资源
      最近更新 更多