Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/190.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 格式字符串[211659646]->[211.659.646]_Java_Android - Fatal编程技术网

Java 格式字符串[211659646]->[211.659.646]

Java 格式字符串[211659646]->[211.659.646],java,android,Java,Android,我需要一个方法来做到这一点。我已经搜索了很长时间,但没有找到解决方案 我只想格式化一个字符串,例如: 等等 你能帮我回答这个问题吗?对于这样的问题,我应该学习什么 谢谢:D代码示例: String number = "1000000.11"; double amount = Double.parseDouble(number); DecimalFormat f = new DecimalFormat("#,###.00"); System.out.printin(f.format(amount

我需要一个方法来做到这一点。我已经搜索了很长时间,但没有找到解决方案

我只想格式化一个字符串,例如:

等等

你能帮我回答这个问题吗?对于这样的问题,我应该学习什么

谢谢:D

代码示例:

String number = "1000000.11";
double amount = Double.parseDouble(number);
DecimalFormat f = new DecimalFormat("#,###.00");

System.out.printin(f.format(amount));
如果您希望格式化某些小数点,则可以使用此选项

或者你可以使用

int i = 1000000;
string s = NumberFormat.getIntegerInstance().format(i);
代码示例:

String number = "1000000.11";
double amount = Double.parseDouble(number);
DecimalFormat f = new DecimalFormat("#,###.00");

System.out.printin(f.format(amount));
如果您希望格式化某些小数点,则可以使用此选项

或者你可以使用

int i = 1000000;
string s = NumberFormat.getIntegerInstance().format(i);
您可以使用DecimalFormat,如下所示:

DecimalFormat format = new DecimalFormat("#,###.000");
然后把号码传给它:

System.out.println(format.format(#your-int));
您可以使用DecimalFormat,如下所示:

DecimalFormat format = new DecimalFormat("#,###.000");
然后把号码传给它:

System.out.println(format.format(#your-int));
插入点。输入一个字符串而不是一个数字,在每3个位置,从末尾开始,可以执行以下操作:

private static String format(String s) {
    if (s.length() <= 3)
        return s;
    int first = (s.length() - 1) % 3 + 1;
    StringBuilder buf = new StringBuilder(s.substring(0, first));
    for (int i = first; i < s.length(); i += 3)
        buf.append('.').append(s.substring(i, i + 3));
    return buf.toString();
}
由于您特别要求在字符串上执行此操作,因此它可以在任何字符串上执行此操作,例如

你好,世界!->你好,你好! 插入点。输入一个字符串而不是一个数字,在每3个位置,从末尾开始,可以执行以下操作:

private static String format(String s) {
    if (s.length() <= 3)
        return s;
    int first = (s.length() - 1) % 3 + 1;
    StringBuilder buf = new StringBuilder(s.substring(0, first));
    for (int i = first; i < s.length(); i += 3)
        buf.append('.').append(s.substring(i, i + 3));
    return buf.toString();
}
由于您特别要求在字符串上执行此操作,因此它可以在任何字符串上执行此操作,例如

你好,世界!->你好,你好! Java 8解决方案:

private static String format(String s) {
    int groupCount = (s.length() + 2) / 3;
    return IntStream.range(0, groupCount).boxed()
        .map (i -> s.substring(
            Math.max(0, s.length() - 3 * (groupCount - i)), 
            s.length() - 3 * (groupCount - 1 - i)))
        .collect(Collectors.joining("."));
}
Java 8解决方案:

private static String format(String s) {
    int groupCount = (s.length() + 2) / 3;
    return IntStream.range(0, groupCount).boxed()
        .map (i -> s.substring(
            Math.max(0, s.length() - 3 * (groupCount - i)), 
            s.length() - 3 * (groupCount - 1 - i)))
        .collect(Collectors.joining("."));
}

可能重复的可能重复的Woow,这正是我要找的。非常感谢,效果非常好:哦,这正是我要找的。非常感谢,它工作得很好