目录
需求:键盘录入银行卡的余额 123456789==> 123,456,789 12345678 ==>12,345,678
倒着遍历正着获取
分析:1.将字符串转为到中数组;2.使用循环进行遍历 从后往前进行遍历;3.% 3 ==0 并且 i !=0 拼接;4.需要正着获取数据
import java.util.Scanner;
/**
* 只能是整数
*/
public class Test02 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入银行卡余额:");
String money = input.next();
//转换为数组
char[] chars = money.toCharArray();
//定义一个字符串进行拼接
StringBuilder world = new StringBuilder();
//使用循环遍历数组 倒着遍历
for (int i = chars.length - 1; i >= 0; i--) {
if (i != 0 && i % 3 == 0) {
world.append(chars[chars.length - 1 - i]).append(",");
} else {
world.append(chars[chars.length - 1 - i]);
}
}
System.out.println(world);
}
}
倒着遍历倒着获取(推荐)
分析:从后往前遍历,并插入的StringBuilder。
import java.util.Scanner;
/**
* 小数也可以
*/
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入银行卡余额:");
String money = input.next();
String minMoney = null;
String intMoney = null;
if (money.contains(".")) {
minMoney = money.substring(money.indexOf("."));
intMoney = money.substring(0,money.indexOf("."));
}
StringBuffer sb = new StringBuffer();
int j = 1;
assert intMoney != null;
for (int i = intMoney.length() - 1; i >= 0; i--) {
sb.insert(0, intMoney.charAt(i));
if (j % 3 == 0 && i != 0) {
sb.insert(0, ",");
}
j++;
}
System.out.print(sb);
if (money.contains(".")) {
System.out.print(minMoney);
}
}
}