zoukankan      html  css  js  c++  java
  • Java自学-数字与字符串 格式化输出

    Java 使用printf或format 进行格式化输出

    步骤 1 : 格式化输出

    如果不使用格式化输出,就需要进行字符串连接,如果变量比较多,拼接就会显得繁琐
    使用格式化输出,就可以简洁明了

    %s 表示字符串
    %d 表示数字
    %n 表示换行

    package digit;
      
    public class TestNumber {
      
        public static void main(String[] args) {
     
            String name ="盖伦";
            int kill = 8;
            String title="超神";
             
            //直接使用+进行字符串连接,编码感觉会比较繁琐,并且维护性差,易读性差
            String sentence = name+ " 在进行了连续 " + kill + " 次击杀后,获得了 " + title +" 的称号";
             
            System.out.println(sentence);
             
            //使用格式化输出
            //%s表示字符串,%d表示数字,%n表示换行
            String sentenceFormat ="%s 在进行了连续 %d 次击杀后,获得了 %s 的称号%n";
            System.out.printf(sentenceFormat,name,kill,title);
             
        }
    }
    

    步骤 2 : printf和format

    printf和format能够达到一模一样的效果,通过eclipse查看java源代码
    可以看到,在printf中直接调用了format
    printf和format

    package digit;
      
    public class TestNumber {
      
        public static void main(String[] args) {
     
            String name ="盖伦";
            int kill = 8;
            String title="超神";
             
            String sentenceFormat ="%s 在进行了连续 %d 次击杀后,获得了 %s 的称号%n";
            //使用printf格式化输出
            System.out.printf(sentenceFormat,name,kill,title);
            //使用format格式化输出
            System.out.format(sentenceFormat,name,kill,title);
             
        }
    }
    

    步骤 3 : 换行符

    换行符就是另起一行 --- ' ' 换行(newline)
    回车符就是回到一行的开头 --- ' ' 回车(return)
    在eclipse里敲一个回车,实际上是回车换行符
    Java是跨平台的编程语言,同样的代码,可以在不同的平台使用,比如Windows,Linux,Mac
    然而在不同的操作系统,换行符是不一样的
    (1)在DOS和Windows中,每行结尾是 “ ”;
    (2)Linux系统里,每行结尾只有 “ ”;
    (3)Mac系统里,每行结尾是只有 " "。
    为了使得同一个java程序的换行符在所有的操作系统中都有一样的表现,使用%n,就可以做到平台无关的换行

    package digit;
      
    public class TestNumber {
      
        public static void main(String[] args) {
     
            System.out.printf("这是换行符%n");
            System.out.printf("这是换行符%n");
             
        }
    }
    

    步骤 4 : 总长度,左对齐,补0,千位分隔符,小数点位数,本地化表达
    其他常用的格式化方式

    总长度,左对齐,补0,千位分隔符,小数点位数,本地化表达

    package digit;
      
    import java.util.Locale;
       
    public class TestNumber {
       
        public static void main(String[] args) {
            int year = 2020;
            //总长度,左对齐,补0,千位分隔符,小数点位数,本地化表达
              
            //直接打印数字
            System.out.format("%d%n",year);
            //总长度是8,默认右对齐
            System.out.format("%8d%n",year);
            //总长度是8,左对齐
            System.out.format("%-8d%n",year);
            //总长度是8,不够补0
            System.out.format("%08d%n",year);
            //千位分隔符
            System.out.format("%,8d%n",year*10000);
      
            //小数点位数
            System.out.format("%.2f%n",Math.PI);
              
            //不同国家的千位分隔符
            System.out.format(Locale.FRANCE,"%,.2f%n",Math.PI*10000);
            System.out.format(Locale.US,"%,.2f%n",Math.PI*10000);
            System.out.format(Locale.UK,"%,.2f%n",Math.PI*10000);
              
        }
    }
    

    练习黄鹤

    借助Scanner 读取字符串数据,然后用格式化输出下面

    浙江温州最大皮革厂 江南皮革厂倒闭了,王八蛋老板黄鹤吃喝嫖赌,欠下了3.5个亿,带着他的小姨子跑了!我们没有办法,拿着钱包抵工资!原价都是一多、两多、三多的钱包,现在全部只卖二十块,统统只要二十块!黄鹤王八蛋,你不是人!我们辛辛苦苦给你干了大半年,你不发工资,你还我血汗钱,还我血汗钱!

    答案

    package digit;
     
    import java.util.Locale;
    import java.util.Scanner;
     
    public class TestNumber {
     
        public static void main(String[] args) {
     
            Scanner s = new Scanner(System.in);
            System.out.println("请输入地名:");
            String location = s.nextLine();
            System.out.println("请输入公司类型:");
            String companyCategory = s.nextLine();
            System.out.println("请输入公司名称:");
            String companyName = s.nextLine();
            System.out.println("请输入老板名称:");
            String bossName = s.nextLine();
            System.out.println("请输入金额:");
            String money = s.nextLine();
            System.out.println("请输入产品:");
            String product = s.nextLine();
            System.out.println("请输入价格计量单位:");
            String unit = s.nextLine();
     
            String model = "%s最大%s%s倒闭了,王八蛋老板%s吃喝嫖赌,欠下了%s个亿,
    "
                    + "带着他的小姨子跑了!我们没有办法,拿着%s抵工资!原价都是一%s多、两%s多、三%s多的%s,
    "
                    + "现在全部只卖二十块,统统只要二十块!%s王八蛋,你不是人!我们辛辛苦苦给你干了大半年,
    "
                    + "你不发工资,你还我血汗钱,还我血汗钱!";       
            System.out.format(model, location,companyCategory,companyName,bossName,money,product,unit,unit,unit,product,bossName);
             
        }
    }
    
  • 相关阅读:
    lambda表达式
    Shiro身份认证---转
    反转数组
    HashMap去重
    开发工具软件下载地址
    setInterval的使用和停用
    手机端的META
    spring自定义参数绑定(日期格式转换)
    mybatis注解动态sql
    SpringMVC文件上传
  • 原文地址:https://www.cnblogs.com/jeddzd/p/11611806.html
Copyright © 2011-2022 走看看