我有几个字符串: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 :(得分:5)
您可以使用String.format()(如果您熟悉C / C ++,则此类似于printf()
)。例如,以下内容为您提供所需的字符串格式:
String.format("%s %s %s%n%s;%s%n", a, b, c, d, e);
其中%n是新的线符号。
如果输出字符串很长,那么您也可以使用StringBuilder和String.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]", "");
再次,它的第一个输入参数是正则表达式。