java--StringBuffer类 实现金额格式化(初学小菜鸟的纠错笔记)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java--StringBuffer类 实现金额格式化(初学小菜鸟的纠错笔记),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4474字,纯文字阅读大概需要7分钟。
内容图文
![java--StringBuffer类 实现金额格式化(初学小菜鸟的纠错笔记)](/upload/InfoBanner/zyjiaocheng/617/e812d78efd484d40b75dd57398e72e89.jpg)
实现商品批发总金额显示
登录验证通过后,显示批发商品信息;
输入批发商品编号和数量,以 指定格式显示总金额
格式化输出带小数的金额
经过人指导后改的代码:
import java.util.Scanner;
public class Goods2 {
static String[] goods = new String[]{"电风扇","洗衣机","电视机","冰 箱","空调机"};
static double[] price = new double[]{124.23,4500.0,8800.88,5000.88,4456.0};
public static void main(String[] args) {
login();
show();
Scanner input = new Scanner(System.in);
System.out.print("请输入您批发的商品编号:");
int no = input.nextInt();
System.out.print("请输入批发数量:");
int amount = input.nextInt();
double sum = 0;
switch (no){
case 1:
sum = amount*124.23;
break;
case 2:
sum = amount*4500;
break;
case 3:
sum = amount*8800.9;
break;
case 4:
sum = amount*5000.88;
break;
case 5:
sum = amount*4456;
break;
default:
System.out.println("商品不存在!");
break;
}
System.out.println("您需要付款:"+change(sum));
}
//用户登录
public static void login(){
boolean flag = true;
for(;flag;){
Scanner input = new Scanner(System.in);
System.out.print("请输入用户名:");
String admin = input.next();
System.out.print("请输入密码:");
String password = input.next();
if(admin.equals("TOM") && password.equals("123")){
System.out.println("登陆成功!");
flag = false;
}else{
System.out.println("用户名或密码错误,请重新输入!");
}
}
}
//展示商品信息
public static void show(){
System.out.println("***********欢迎进入商品批发城************");
System.out.println("编号\t\t商品\t\t\t价格");
for(int i = 0;i<goods.length;i++){
System.out.print((i+1)+"\t\t"+goods[i]+"\t\t");
System.out.println(change(price[i]));
}
System.out.println("**************************************");
}
//格式化金额
public static StringBuffer change(double price){
StringBuffer str = new StringBuffer(String.valueOf(price));
int index = str.indexOf(".");
for(int i = index-3;i>0;i-=3){
str.insert(i,",");
}
return str;
}
}
运行结果:
自己尝试写出的代码
最大的缺陷是
- 没有使用数组
- 没有考虑double可以转String/StringBuffer,使得代码更复杂
代码如下:
import java.util.Scanner;
public class Goods {
private int goodsNo;
private String goodsName;
private StringBuffer goodsPrice;
public Goods(){
}
//实际可以金额直接为double类型,change()中转化为StringBuffer更方便
public Goods(int goodsNo, String goodsName, StringBuffer goodsPrice) {
this.goodsNo = goodsNo;
this.goodsName = goodsName;
this.goodsPrice = goodsPrice;
}
public static void main(String[] args) {
//用户登录,可以单独写一个方法
Scanner input = new Scanner(System.in);
System.out.print("请输入用户名:");
String name = input.next();
System.out.print("请输入密码:");
String password = input.next();
if(name.equals("TOM")&& password.equals("123")){
System.out.println("登录成功!");
}else{
System.out.println("用户名或密码错误!");
}
show();
System.out.print("请输入您批发的商品编号:");
int no = input.nextInt();
System.out.print("请输入批发数量:");
int amount = input.nextInt();
double sum = 0;
switch (no){
case 1:
sum = amount*124.23;
break;
case 2:
sum = amount*4500;
break;
case 3:
sum = amount*8800.9;
break;
case 4:
sum = amount*5000.88;
break;
case 5:
sum = amount*4456;
break;
default:
System.out.println("商品不存在!");
break;
}
StringBuffer sum1 = new StringBuffer(String.valueOf(sum));//如果Price对象为double类型,这里可以写得更简单
System.out.println("您需要付款:"+change(sum1));
}
public static void show(){
//可以用数组简化代码
Goods goods1 = new Goods(1,"电风扇",new StringBuffer(String.valueOf(124.23)));
Goods goods2 = new Goods(2, "洗衣机", new StringBuffer(String.valueOf(4500.0)));
Goods goods3 = new Goods(3,"电视机",new StringBuffer(String.valueOf(8800.9)));
Goods goods4 = new Goods(4, "冰箱", new StringBuffer(String.valueOf(5000.88)));
Goods goods5 = new Goods(5, "空调机", new StringBuffer(String.valueOf(4456.0)));
System.out.println("***********欢迎进入商品批发城************");
System.out.println("编号\t\t商品\t\t\t价格");
System.out.println(goods1.goodsNo+"\t\t"+goods1.goodsName+"\t\t"+change(goods1.goodsPrice));
System.out.println(goods2.goodsNo+"\t\t"+goods2.goodsName+"\t\t"+change(goods2.goodsPrice));
System.out.println(goods3.goodsNo+"\t\t"+goods3.goodsName+"\t\t"+change(goods3.goodsPrice));
System.out.println(goods4.goodsNo+"\t\t"+goods4.goodsName+"\t\t\t"+change(goods4.goodsPrice));
System.out.println(goods5.goodsNo+"\t\t"+goods5.goodsName+"\t\t"+change(goods5.goodsPrice));
System.out.println("**************************************");
}
// String/StringBuffer/double容易混乱
public static StringBuffer change(StringBuffer goodsPrice){
int index = goodsPrice.indexOf(".");
for(int i = index-3;i>0;i-=3){
goodsPrice.insert(i,",");
}
return goodsPrice;
}
}
运行结果:
内容总结
以上是互联网集市为您收集整理的java--StringBuffer类 实现金额格式化(初学小菜鸟的纠错笔记)全部内容,希望文章能够帮你解决java--StringBuffer类 实现金额格式化(初学小菜鸟的纠错笔记)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。