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();
}
4

2 回答 2

5

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

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

其中 %n 是换行符。

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

于 2013-06-11T17:43:42.773 回答
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]");

是有关正则表达式的更多信息。

如果您并不真正关心输入字符串中的哪些元素而只是简单地删除换行符,那么您可以使用String.replaceAll()

在您的情况下,它将是:

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

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

于 2013-06-11T18:18:29.270 回答