设置字符串格式时发生java FormatFlagsTransversionMismatchException异常
我在程序中进行除法,并将结果打印到屏幕上。运行程序时没有问题,但当我尝试启动单元测试时,会收到以下错误:
java.util.FormatFlagsConversionMismatchException: Conversion = s, Flags = 0
在以下行:
String underscoreToResult = String.format("%" + (i - 2) + "s", "_");
下面我提供了与此方法相关的所有代码:
private StringBuilder bodyOfMethodCalculateDivisionWhenDividentLessThanDivisor(StringBuilder result, Integer reminderInInteger, int divisor, int divident, Integer divisorMuplipliedByQuotient,
StringBuilder lastReminder, int i) {
String underscoreToResult = String.format("%" + (i - 2) + "s", "_");
String resultedReminder = reminderInInteger.toString();
result.append(underscoreToResult).append(resultedReminder).append("\n");
String multiply = String.format("%" + (i + 2) + "d", divisorMultipliedByQuontient(divisorMuplipliedByQuotient, divisor, reminderInInteger));
result.append(multiply).append("\n");
if (divident < divisor) {
printLastNumber(lastReminder, reminderInInteger, multiply);
}
Integer tab = resultedReminder.length() - calculateAmountOfDigits(divisorMultipliedByQuontient(divisorMuplipliedByQuotient, divisor, reminderInInteger));
String drawDashes = String.format("%" + (i + 2) + "s", createDivisor(divisorMultipliedByQuontient(divisorMuplipliedByQuotient, divisor, reminderInInteger), tab));
result.append(drawDashes).append("\n");
return result;
}
# 1 楼答案
方法
String.format("%Ns", "_");
需要N>;0由于您使用的是
String.format("%" + (i - 2) + "s", "_");
,因此需要确保单元测试始终使用i >= 3
运行,以便出现任何异常