我正在读取一个在元素之间有分隔符的文件。我试图将每个元素放入一个新的数组索引。这似乎不能正常工作,一切似乎最终都在数组的一个索引上。下面是一个示例文本文件和我的代码。
文本文件
%User %James %Fields %Will Smith %sBel %James %Fields %Will Smith %sBel %James %Fields %Will Smith %sBel%James %Fields %Will Smith %sBel %James %Fields %Will Smith %sBel %James %Fields %Will Smith %sBel %James %Fields %Will Smith %sBel %James %Fields %Will Smith %sBel %James %Fields %Will Smith %sBel %James %Fields %Will Smith %sBel %James %Fields %Will Smith %sBel %James %Fields %Will Smith %sBel %James %Fields %Will Smith %sBel %James %Fields %Will Smith %sBel %James %Fields %Will Smith %sBel %James %Fields %Will Smith %sBel %James %Fields %Will Smith %sBel
代码
final InputStream i = getResources().openRawResource(R.raw.users);
final Scanner s = new Scanner(i);
try
{
while (s.hasNextLine())
{
String d = s.nextLine();
String test;
test = values[1];
userTextArea.append(test);
test = "";
}
}
答案 0 :(得分:0)
.button-container
答案 1 :(得分:0)
您必须使用拆分功能。
String tmp = "%hallo %world";
String [] strArray = tmp.split("%");
System.out.print(strArray[0]); //prints hallo
答案 2 :(得分:0)
数组是一个容器对象,它包含存储在唯一索引(位置)中的固定数量的值。
<强>原因强>
一切似乎最终都在数组的一个索引
上
对于两个原因,它会这样做:
您正在阅读的文件没有换行符。因此,它会将所有文件内容分配给变量&#34; d &#34;当你打电话给 nextLine()时。
String d = s.nextLine();
String[] values = d.split("%");
for(String value: values) {
userTextArea.append(value.trim());
}
在您的计划中,此时要澄清&#34; d &#34;保存您的整个文本文件。
即使它确实有新行字符,你仍然不会在数组中读取任何内容。将字符串分配给变量&#34; d &#34;。你没有做任何事情。
<强>建议强>
这样做的一种方法是:
按原样读取文件,然后使用字符串 split()函数用于拆分元素,此函数返回一个数组,因此您需要将其分配给 String []数组变量。 省略 while循环因为你只需要阅读一行。在此之后,循环 通过字符串数组并将值附加到文本区域:
db.foo.update({}, { $pull: { "activities.procedures.implications_ids" : ObjectId("50871f11d52ef600020128a2") }}, { multi: true } )
在追加时,不要忘记修剪字符串,因为您的文件在元素之间包含空格。 String trim()函数将删除这些。