2013-06-11 7 views
1

У меня есть несколько строк: a, b, c, d, e. Я хочу сохранить их в файл FILENAME как одну строку a b c d:e. Проблема - мне нужно сохранить информацию о том, что d;e начинается с новой строки.Как сохранить строку в одной строке?

String str = a 
     + " " 
     + b 

     + c 
     + "\n " 
     + d 
     + ";" 
     + e + "\r\n"; 
try { 
    fos = openFileOutput(FILENAME, Context.MODE_APPEND); 
    fos.write(str.getBytes()); 
    fos.flush(); 
    fos.close(); 
} catch (IOException e1) { 
    // TODO Auto-generated catch block 
    e1.printStackTrace(); 
} 
+0

http://stackoverflow.com/questions/8491687/write-newline-into-a-file – ataulm

ответ

1

Теперь я, вероятно, понимаю ваш вопрос. Вашему вопросу задана входная строка с форматом "%s %s %s\n%s:%s\n", как сохранить их в формате "%s %s %s %s:%s" в файле, и я думаю, вы знаете, как сделать вторую часть.

В первой части вам необходимо проанализировать входную строку, чтобы вы могли получить пять элементов. Один простой способ заключается в использовании String.split() функцию, которая возвращает массив строк с учетом входной строки и разделителей, описанной как регулярное выражение:

String[] String.split(String regex) 
// Splits this string around matches of the given regular expression. 

Например, в вашем случае:

String[] elements = str.split("[ ;\n\r]"); 

Here является больше информации о регулярном выражении.

Если вам не все равно, какие элементы внутри входной строки и просто удалить новые символы строки, вы можете использовать String.replaceAll().

В вашем случае, это было бы:

String newStr = str.replaceAll("[\n\r]", ""); 

снова, его первый входной аргумент является регулярным выражением.

5

Вы можете использовать String.format() (если вы знакомы с C/C++, это один похож на printf()). Например, ниже приводится нужный формат строки:

String.format("%s %s %s%n%s;%s%n", a, b, c, d, e); 

где% n - новый символ строки.

Если вы выводите строку длинную, то вы также можете использовать StringBuilder вместе с String.format().

+0

Теперь я сделал это таким образом, но он по-прежнему сохраняется как 2 строки в файле, в то время как мне нужно один. – Yarh

Смежные вопросы