如何在一行中保存字符串?

时间:2013-06-11 17:41:00

标签: java android string io

我有几个字符串: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();
}

2 个答案:

答案 0 :(得分:5)

您可以使用String.format()(如果您熟悉C / C ++,则此类似于printf())。例如,以下内容为您提供所需的字符串格式:

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

其中%n是新的线符号。

如果输出字符串很长,那么您也可以使用StringBuilderString.format()

答案 1 :(得分: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]", "");

再次,它的第一个输入参数是正则表达式。