Javaの自己 - 数値と文字列の書式出力

Javaは、出力をフォーマットするためのprintfや形式を使用して、

ステップ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のフォーマット

printfのフォーマットとまったく同じ効果を得ることができますが、Javaのソースコードを日食を見る
printfの呼び出し形式で直接見ることができます
printfのフォーマット

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:改行

改行文字が「\ n」は改行(改行)---独立したラインである
キャリッジリターンが「\ rの」キャリッジリターン(復帰)---バックラインの先頭にある
日食にキャリッジリターンをノック、実際には、戻ってきました車の改行
Javaはクロスプラットフォームのプログラミング言語であり、同じコードは、WindowsやLinux、Macのように異なるプラットフォームで使用することができます
が、異なるオペレーティングシステム上で、改行は同じではありません
(1)DOSとWindowsで、各ラインの末尾に「N- \ \ rが」ある;
(2)Linuxシステム、各行の最後のみ「\ N-」;
(3)各ラインの終わりにMACシステムは、唯一の「\のR」です。
すべてのオペレーティングシステムは、%nを使用して、同じ性能を持つ上でJavaプログラムで改行を行うために、あなたはラッププラットフォームに依存しない操作を行うことができます

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);
          
    }
}

運動

スキャナのデータ列がで読み取り、その後、次のようにフォーマットされた出力します

温州市、浙江省最大のタンナー 南タンナーは、雌犬のボスの息子閉鎖、Chihepiaoduを負っ3.5億ドルに、彼の妹は走って!私たちは、保持、方法がない財布を賃金に到着!価格李ある二つ以上の以上3つのより財布、そして今、すべてのすべての20!限り、唯一の20を販売した黄の雌犬の息子、あなたがいない賃金を行い、私たちはあなたに6ヶ月を与えるために懸命に働いた!人間じゃありませんあなたも私の苦労して稼いだお金でなく、私の苦労して稼いだお金!

答え

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个亿,\r\n"
                + "带着他的小姨子跑了!我们没有办法,拿着%s抵工资!原价都是一%s多、两%s多、三%s多的%s,\r\n"
                + "现在全部只卖二十块,统统只要二十块!%s王八蛋,你不是人!我们辛辛苦苦给你干了大半年,\r\n"
                + "你不发工资,你还我血汗钱,还我血汗钱!";       
        System.out.format(model, location,companyCategory,companyName,bossName,money,product,unit,unit,unit,product,bossName);
         
    }
}

おすすめ

転載: www.cnblogs.com/jeddzd/p/11611806.html