【问题标题】:separate number using substring java使用子字符串java分隔数字
【发布时间】:2018-09-11 19:41:55
【问题描述】:

我想用 Java 创建一个程序,从 user_input 获取数字并使其成为货币格式...这是我的代码

package Seperator_checker;

import java.util.Scanner;

public class Seperator {

    public static void main(String[] args) {
        Scanner number=new Scanner(System.in);
        System.out.print("Please Enter Your Number: ");
        String user_number=number.next();
        if(user_number.length()> 3) {
            user_number=user_number.substring(0,user_number.length()-3) + "," + user_number.substring(0,1);
            System.out.println("________________________________________");
            System.out.println("Your Currency Number Is: "+ user_number);
        }

    }

}

【问题讨论】:

  • 请正确格式化您的代码并说明什么不适合您。另外,“货币格式”是什么意思?预期的输入和输出是什么?
  • 您是否有不能使用NumberFormat 的原因?我可能没有正确阅读您的代码,但我看不到在哪里,例如,“1000000”将正确格式化为“1,000,000”。另外,作为货币,应该有小数等。这里没有任何东西处理本地化。见Java Currency Number format
  • 请明确您的问题并正确格式化。
  • 例如,“1000000”将被格式化为“1,000,000”:是的,这正是我想要的

标签: java web substring


【解决方案1】:

我能想到的一个自发的答案是将字符串拆分为一个字符列表,然后向后遍历它并在每第三步之后插入一个,,直到你到达开头。

伪代码:

Convert String to Char List
goto end of List
counter = 0
while havent reached beginning of list
    counter += 1
    if counter == 3
        counter = 0
        insert ',' into List
        //maybe go back one here too depending on implementation of 
        //insert and which is the current element after inserting
    end if
    go one back one element in List
end while

抱歉,我不知道如何编写伪代码

【讨论】:

  • 不幸的是我必须使用 substring 方法进行这种做法
【解决方案2】:

如果你必须使用子字符串:

我不知道如何表达,所以这里是代码:)

import java.util.Scanner;
public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        String input = sc.nextLine();
        int rest = input.length() % 3;
        if(rest == 0){
            rest = 3;
        }
        //add the "irregular" comma
        input = input.substring(0,rest) + "," + input.substring(rest);

        //add the rest
        for(int i = rest+1;i < input.length()-3; i+= 4){//4 because of the comma
            input = input.substring(0, i+3) + "," + input.substring(i+3, input.length()); 
        }
        System.out.println(input);
    }
}

(基本上先把不规则的部分放在开头,然后分3步走(4因为你插入了逗号)并插入逗号)

希望这会有所帮助:)

【讨论】:

    猜你喜欢
    • 2015-12-28
    • 2012-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多