import java.util.Scanner;
public class CashSplitter {
public static void main(String[] args) {
Scanner S = new Scanner(System.in);
System.out.println("Cash Values");
String i = S.nextLine();
for(int b = 0;b<i.length(); b ++){
System.out.println(b);
System.out.println(i.substring(0,i.indexOf('.')+3));
i.replace(i.substring(0, i.indexOf('.') + 3), "");
System.out.println(i);
System.out.println(i.substring(0, i.indexOf('.') + 3));
}
}
}
代码应该能够获取具有多个现金值的字符串并将其拆分为单个值。例如7.32869.32应拆分7.32,869.32等
答案 0 :(得分:1)
字符串是不可变的,因此replace返回一个新的String供您使用
尝试
i = i.replace(i.substring(0, i.indexOf('.') + 3), "");
尽管尝试使用
https://docs.oracle.com/javase/7/docs/api/java/text/NumberFormat.html
答案 1 :(得分:1)
您的代码存在一些问题:
replace
最后一点,如果你从2.222.222.22
开始,你将只获得一个现金值而不是三个,因为replace
会丢弃所有三个匹配。
Java提供了一种在正则表达式上分割String
的好方法:
String[] parts = S.split("(?<=[.]..)")
正则表达式是一个后备,需要一个点后跟任意两个字符。