我的.txt文件包含不同的数据。所有这些数据组织为3类。我需要获得第一个数组的一些数据,一些用于第二个,另一个用于第三个。怎么做?
.txt文件包含X部分,空格和#(用于分隔第2和第3类文本)
part 1
some data for 1st array
part 2
some data for 2nd array#some data for 3rd array
part 3
some data for 1st array
part 4
some data for 2nd array#some data for 3rd array
同时,我需要从每个类别收集数据: 来自第1部分和第3部分,第2部分和第4部分,在#
之后现在我被卡住了,我的代码会获取所有数据,但我不知道接下来应该做什么。
public class MainActivity extends AppCompatActivity {
TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = (TextView) findViewById(R.id.text1);
textView.setMovementMethod(new ScrollingMovementMethod());
String data = "";
StringBuffer sBuffer = new StringBuffer();
InputStream is = this.getResources().openRawResource(R.raw.phrases);
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
if ( is!= null){
try {
while ((data=reader.readLine()) !=null){
sBuffer.append(data + "\n");
}
textView.setText(sBuffer);
is.close();
}catch (Exception e){
e.printStackTrace();
}
}
}
}
答案 0 :(得分:1)
您应该在while循环中添加解析逻辑,每次迭代读取一行。
你可以在你的循环中做这样的事情:
.col-sm-6:nth-child(even) input {
background: green !important;
}
答案 1 :(得分:1)
以下是使用StringBuffer的内容的一种方法:
List<String> arr1 = new ArrayList<>();
List<String> arr2 = new ArrayList<>();
List<String> arr3 = new ArrayList<>();
Pattern p = Pattern.compile("part \\d+\\n(.*)\\n+part \\d+\\n(.*)#(.*)");
Matcher m = p.matcher(sBuffer);
while(m.find()) {
arr1.add(m.group(1));
arr2.add(m.group(2));
arr3.add(m.group(3));
}
注意:在上面的代码中,为方便起见,我使用了ArrayLists而不是数组。但是,您可以使用List<String>
轻松将String[]
转换为myList.toArray(new String[0])
数组。