我有两个项目的数组列表,每个项目有3个单词:用户名,分数和高分(例如:ryan 120 medium)。我希望能够从数组列表项中拆分这些单词,并将每个单词显示在android studio中的文本视图中。我该怎么做呢我已经写了一些代码,但我不知道该去哪里?我知道它与for循环有关。我使用计数来表示从数组列表项中拆分的单独单词。
public void setHighScore() {
List<String> lines = new ArrayList<>();
lines.add("ryan 150 medium");
lines.add("andrew 200 medium")
int count = 0;
int count2 = 0;
while(count < lines.size()) {
for() {
if(count2 == 0) {
count2++;
}
else if(count2 == 1) {
count2++;
}
else if(count2 == 2) {
count2++;
}
}
}
}
答案 0 :(得分:4)
使用Split();
示例:
lines.add("ryan 150 medium");
lines.add("andrew 200 medium")
String[] words = lines.get(0).split(" ");
words[0] // ryan
words[1] // 150
words[2] // medium
String[] words2 = lines.get(1).split(" ");
words2[0] // andrew
words2[1] // 200
words2[2] // medium
TextView viewsName = (TextView)findViewById(R.id.name);
viewsName.setText(words[0]); // ryan
TextView viewsScore = (TextView)findViewById(R.id.score);
viewsScore.setText(words[1]); // 150
TextView viewsLevel = (TextView)findViewById(R.id.level);
viewsLevel.setText(words[2]); // medium
答案 1 :(得分:0)
您可以使用List的foreach
循环,然后执行您需要的任何操作。
public void setHighScore(){
List<String> lines = new ArrayList<>();
lines.add("ryan 150 medium");
lines.add("andrew 200 medium");
lines.forEach(line -> {
String[] temp = line.split(" ");
// Whatever you want to do for the line.
});
}
答案 2 :(得分:0)
public void setHighScore() {
List<String[]> listStringArray = new ArrayList<>();
List<String> lines = new ArrayList<>();
lines.add("ryan 150 medium");
lines.add("andrew 200 medium")
for(int i = 0; i < lines.size(); i++){
String[] words = lines.get(i).split(" ");
listStringArray.add(words);
}
}
您将获得String of String数组中的数据。
现在您可以将数据设置为视图,如下所示:
TextView textView = (TextView) findViewById(R.id.text);
textView.setText(listStringArray.get(i)[0]);
答案 3 :(得分:0)
解决此问题的更强大的 STANDARD JAVA方法是定义包含不同属性的class
。然后使用它。
<强> Person.class 强>
public class Person {
String name, highscore;
int points;
public Person(String name, int points, String highscore) {
this.name = name;
this.points = points;
this.highscore = highscore;
}
public String getName() {
return name;
}
public int getPoints() {
return points;
}
public String getHighscore() {
return highscore;
}
}
现在在列表中使用此类,如下所示:
List<Person> lines = new ArrayList<>();
lines.add(new Person("ryan", 150, "medium"));
lines.add(new Person("andrew", 200,"medium"));
//Accress them as follows:
lines.get(0).getName(); //this will return ryan
lines.get(1).getPoints(); //this will return 200