كيف يمكنني الحصول على شخصية سطر جديدة تعتمد على النظام الأساسي؟
-
03-07-2019 - |
سؤال
كيف يمكنني الحصول على سطر جديد يعتمد على النظام الأساسي في Java؟لا أستطيع استخدام "\n"
في كل مكان.
المحلول
بالإضافة إلى الخاصية line.separator، إذا كنت تستخدم Java 1.5 أو إصدار أحدث، فسيتم استخدام String.format (أو غيرها التنسيق الطرق) التي يمكنك استخدامها %n
كما في
Calendar c = ...;
String s = String.format("Duke's Birthday: %1$tm %1$te,%1$tY%n", c);
//Note `%n` at end of line ^^
String s2 = String.format("Use %%n as a platform independent newline.%n");
// %% becomes % ^^
// and `%n` becomes newline ^^
انظر Java 1.8 API للمنسق لمزيد من التفاصيل.
نصائح أخرى
وجافا 7 ديها الآن System.lineSeparator()
طريقة .
ويمكنك استخدام
System.getProperty("line.separator");
للحصول على فاصل سطر
إذا كنت تحاول كتابة سطر جديد إلى ملف، يمكنك ببساطة استخدام BufferedWriter في <لأ href = "http://java.sun.com/javase/6/docs/api/java/io/BufferedWriter. أتش تي أم أل # سطر جديد () "يختلط =" noreferrer "> السطر الجديد () طريقة .
وهذا هو أيضا ممكن: String.format("%n")
وأو String.format("%n").intern()
لإنقاذ بعض بايت.
العموم لانغ ديها حقل ثابت متاح يسمى <لأ href = "HTTP: // commons.apache.org/proper/commons-lang/javadocs/api-3.1/org/apache/commons/lang3/SystemUtils.html#LINE_SEPARATOR">SystemUtils.LINE_SEPARATOR
إذا كنت تكتب إلى ملف، وذلك باستخدام مثيل BufferedWriter
، استخدم الطريقة newLine()
لذلك المثيل. وهو يوفر وسيلة منصة مستقلة لكتابة سطر جديد في ملف.
StringBuilder newLine=new StringBuilder();
newLine.append("abc");
newline.append(System.getProperty("line.separator"));
newline.append("def");
String output=newline.toString();
وهذا المقتطف أعلاه سيكون قد سلسلتين مفصولة خط جديد بغض النظر عن المنصات.
وتجنب إلحاق سلاسل باستخدام سلسلة + سلسلة الخ، واستخدام ب StringBuilder بدلا من ذلك.
String separator = System.getProperty( "line.separator" );
StringBuilder lines = new StringBuilder( line1 );
lines.append( separator );
lines.append( line2 );
lines.append( separator );
String result = lines.toString( );