Benim gibi ipim var
"I am a boy".
Bu şekilde yazdırmak istiyorum
"I
am
a
boy".
Birisi bana yardım edebilir mi?
Benim gibi ipim var
"I am a boy".
Bu şekilde yazdırmak istiyorum
"I
am
a
boy".
Birisi bana yardım edebilir mi?
Yanıtlar:
System.out.println("I\nam\na\nboy");
System.out.println("I am a boy".replaceAll("\\s+","\n"));
System.out.println("I am a boy".replaceAll("\\s+",System.getProperty("line.separator"))); // portable way
Ayrıca kullanabilirsiniz System.lineSeparator()
:
String x = "Hello," + System.lineSeparator() + "there";
System.getProperty("line.separator")
.
String x = "Hello, %n there";
. %n
Okunabilirlik uğruna etrafına boşluklar eklendi .
System.out.printf("I %n am %n a %n boy");
I
am
a
boy
Bunun %n
yerine işletim sisteminden bağımsız bir yeni satır karakteri olarak kullanmak \n
daha iyidir ve kullanmaktan daha kolaydır.System.lineSeparator()
Neden kullanılmalı %n
, çünkü her işletim sisteminde, yeni satır farklı bir karakter kümesini ifade eder;
Unix and modern Mac's : LF (\n)
Windows : CR LF (\r\n)
Older Macintosh Systems : CR (\r)
LF , Line Feed'in kısaltmasıdır ve CR , Carriage Return'ün kısaltmasıdır . Kaçış karakterleri parantez içinde yazılır. Yani her işletim sisteminde yeni hat, sisteme özgü bir şeyi ifade eder. %n
işletim sisteminden bağımsızdır, taşınabilirdir. Bu açılımı \n
Unix sistemleri üzerinde veya \r\n
Windows sistemlerinde ve bu kadar. Bu nedenle kullanmayın \n
, bunun yerine kullanın %n
.
Birkaç şekilde yapılabilir. 2 basit yoldan bahsediyorum.
Aşağıdaki gibi çok basit bir yol:
System.out.println("I\nam\na\nboy");
Aşağıdaki gibi birleştirme ile de yapılabilir:
System.out.println("I" + '\n' + "am" + '\n' + "a" + '\n' + "boy");
Deneyin:
System.out.println("I\nam\na\nboy");
Kodu herhangi bir sisteme taşınabilir yapmak için şunu kullanırdım:
public static String newline = System.getProperty("line.separator");
Bu önemlidir çünkü farklı işletim sistemleri satırsonu için farklı gösterimler kullanır: Windows "\ r \ n" kullanır, Klasik Mac "\ r" kullanır ve Mac ve Linux her ikisi de "\ n" kullanır.
Yorumcular - bu konuda yanılıyorsam lütfen beni düzeltin ...
\n
ayrı hat yapmak için kullanılır;
Misal:
System.out.print("I" +'\n'+ "am" +'\n'+ "boy");
Sonuç:
I
am
boy
Konsolda sadece yeni satır yazdırmak istiyorsanız, yeni satırlar için "\ n" kullanabilirsiniz.
Swing bileşenlerinde metni kırmak istiyorsanız html'yi kullanabilirsiniz:
String s = "<html>first line<br />second line</html>";
Kodunuzun os-belirsiz olmasını istiyorsanız, her kelime için println kullanmalısınız.
System.out.println("I");
System.out.println("am");
System.out.println("a");
System.out.println("boy");
çünkü Windows yeni satır olarak "\ r \ n" kullanır ve unixoid sistemler yalnızca "\ n" kullanır
println her zaman doğru olanı kullanır
println()
bir yeni satır karakteri eklediğini unutmayın (başlangıca değil).
System.lineSeparator()
veya System.getProperty("line.separator")
kod sistemini bağımsız yapmak için kullanılabilir.
Ne hakkında %n
böyle bir biçimlendirici kullanarak String.format()
:
String s = String.format("I%nam%na%nboy");
As Bu cevap java 1.5 onun mevcut diyor ve başka bir yol olduğunu System.getProperty("line.separator")
ya System.lineSeparator()
ve bu ikisi gibi, bir işletim sistemi bağımsız .
Platformdan Bağımsız Satır Sonları
finalString = "bandham" + System.lineSeparator() + "manikanta";
System.out.println(finalString);
Çıktı:
bandham
manikanta
Notlar:
Java 6: System.getProperty("line.separator") Java 7 & above: System.lineSeparator()
Eğlenceli bir dokunuşla tam program örneği:
Yeni bir boş belge açın ve farklı kaydedin %yourJavaDirectory%/iAmABoy/iAmABoy.java
. "iAmABoy" sınıf adıdır.
Aşağıdaki kodu yapıştırın ve okuyun. Unutma, ben bir acemiyim, bu yüzden tüm geri bildirimleri takdir ediyorum!
//The class name should be the same as your Java-file and directory name.
class iAmABoy {
//Create a variable number of String-type arguments, "strs"; this is a useful line of code worth memorizing.
public static void nlSeparated(String... strs) {
//Each argument is an str that is printed.
for (String str : strs) {
System.out.println(str);
}
}
public static void main(String[] args) {
//This loop uses 'args' . 'Args' can be accessed at runtime. The method declaration (above) uses 'str', but the method instances (as seen below) can take variables of any name in the place of 'str'.
for (String arg : args) {
nlSeparated(arg);
}
//This is a signature. ^^
System.out.print("\nThanks, Wolfpack08!");
}
}
Şimdi, terminal / cmd'de göz atın %yourJavaDirectory%/iAmABoy
ve şunu yazın:
javac iAmABoy.java
java iAmABoy I am a boy
Değiştirgeleri I am a boy
herhangi bir şeyle değiştirebilirsiniz !
args
doğrudan nlSeparated()
veya yapmak nlSeparated()
bir sayıl almak String
bir dizinin yerine. İlk seçenek muhtemelen daha iyidir. Ayrıca imzanızı println
yerine ile yazdırın print
.
main
, for (String arg : args) { nlSeparated(arg); }
sadece ile değiştirin nlSeparated(args);
. nlSeparated
zaten bir e listesi kabul ediyor String
. Daha iyi bir açıklama için buraya bakın: stackoverflow.com/a/12534579/2988730
Bu kodu kullanıyorum String result = args[0].replace("\\n", "\n");
public class HelloWorld {
public static void main(String[] args) {
String result = args[0].replace("\\n", "\n");
System.out.println(result);
}
}
terminal ile çıktı I\\nam\\na\\boy
almak için arg kullanabilirimSystem.out.println
I
am
a
boy
<br>
html sayfalarında göstermek için dizenizdeki etiketi kullanabilirsiniz