小编Ali*_*Ali的帖子

Integer.valueOf 阿拉伯数字工作正常,但 Float.valueOf 相同的数字给出 NumberFormatException

使用阿拉伯数字Integer.valueOf("?")返回整数 1 但Float.valueOf("?")orFloat.parseFloat("?")抛出NumberFormatException而如果使用英语数字则不会抛出任何异常Float.valueOf("1"),这是java中的错误还是有一些解释?

我怎样才能解析这样的数字?

我在 android 环境中工作;

java android numberformatexception arabic-support

7
推荐指数
2
解决办法
284
查看次数

这种方法标准是使用varags.length而不是布尔值吗?

我在很多地方多次调用这个方法:

private String changeFirstCharCase(String word) {
    return Character.toLowerCase(word.charAt(0)) + word.substring(1);
}
Run Code Online (Sandbox Code Playgroud)

现在我想在toUpperCase没有创建另一个方法的情况下添加此方法的能力,我需要调用者使用布尔值作为争论来确定使用哪个方法.

private static String changeFirstCharCase(String word, boolean toUpperCase) {
    return toUpperCase
            ? Character.toUpperCase(word.charAt(0)) + word.substring(1)
            : Character.toLowerCase(word.charAt(0)) + word.substring(1);
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我要为每次调用添加一个true/false参数.但是当我使用varags时,只需要toUpperCase能力的呼叫需要添加他们的音符,这可能是任何东西.

private static String changeFirstCharCase(String word, String... toUpperCase) {
    return toUpperCase.length > 0
            ? Character.toUpperCase(word.charAt(0)) + word.substring(1)
            : Character.toLowerCase(word.charAt(0)) + word.substring(1);
}
Run Code Online (Sandbox Code Playgroud)

通过这种方式,旧方法调用不受影响.

changeFirstCharCase(facadeType);
Run Code Online (Sandbox Code Playgroud)

新的可以打电话:

changeFirstCharCase(facadeType, "toUpperCase")
Run Code Online (Sandbox Code Playgroud)

在可读性和维护的情况下,这是一个aprouch标准吗?

java

3
推荐指数
1
解决办法
75
查看次数