gpt4 book ai didi

java - 如何进行此 Java (Android) 字符串替换?

转载 作者:行者123 更新时间:2023-11-30 09:26:53 27 4
gpt4 key购买 nike

我不明白为什么这不起作用:(方法取自 SO 上的 HERE)。

private String MakeSizeHumanReadable(int bytes, boolean si) {
int unit = si ? 1000 : 1024;
if (bytes < unit) return bytes + " B";
int exp = (int) (Math.log(bytes) / Math.log(unit));
String pre = (si ? "kMGTPE" : "KMGTPE").charAt(exp-1) + (si ? "" : "i");
String hr = String.format("%.1f %sB", bytes / Math.pow(unit, exp), pre);
hr = hr.replace("-1 B", "n.a.");
return hr;
}

这个也不是:-

private String MakeSizeHumanReadable(int bytes, boolean si) {
int unit = si ? 1000 : 1024;
if (bytes < unit) return bytes + " B";
int exp = (int) (Math.log(bytes) / Math.log(unit));
String pre = (si ? "kMGTPE" : "KMGTPE").charAt(exp-1) + (si ? "" : "i");
String hr = String.format("%.1f %sB", bytes / Math.pow(unit, exp), pre);

Pattern minusPattern = Pattern.compile("-1 B");
Matcher minusMatcher = minusPattern.matcher(hr);
if (minusMatcher.find()) {
return "n.a.";
} else {
return hr;
}
}

有时我从请求中得到 -1 B(这是正常的),这在 n.a. 中从未改变(....我的问题)。

有没有人有想法?

最佳答案

这是你的问题:

if (bytes < unit) return bytes + " B";

bytes 等于 -1(无论哪种情况都小于 unit),它返回 -1 B 而不会到达行 hr = hr.replace("-1 B", "n.a.");

最后最好有一个return语句,在if中赋值String hr = bytes + "B",并在接下来的三行周围添加一个 else block 。然后在该 block 之后,hr.replace() 调用将以任一方式执行,然后返回值。

关于java - 如何进行此 Java (Android) 字符串替换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14817839/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com