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の呼び出し形式で直接見ることができます
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まで、左桁区切り、小数点以下の局在発現
フォーマット他の従来の方法
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);
}
}