我有一個分配創建一個應用程序,顯示學生的姓名和最後一個字母年級的時候,通過微調選擇他們的名字。我已經用名稱設置了微調器,並且我已經從存儲在資產中的文本文件中讀取了名稱和成績。我使用StringBuilder將該文件中的所有信息拆分爲一個字符串數組。我想將這些數據解析爲一個名爲Student的對象,以便我可以爲每個學生處理成績,但我無法弄清楚如何做到這一點。任何幫助表示讚賞!如何解析數組對象在Java中
的文本文件:
Name Test1 Test2 Test3 Final
Adam Anderson 81 90 85 87
Ben Brown 77 80 68 94
Chris Cross 74 80 56 62
Don Dare 86 94 90 89
Eric Earl 96 93 90 98
Fred Foley 79 92 59 86
Gina Gray 80 83 95 87
Holly Hank 74 77 75 78
Ian Ingram 66 64 56 60
Jill Johnson 90 98 78 89
到目前爲止我的代碼:
package lauren.ruff.lab4;
import android.content.res.AssetManager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Spinner;
import android.widget.TextView;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.lang.StringBuilder;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
TextView name, grade;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String strName;
String strLastName;
String strFirstName;
String strFinalGrade;
final String[] strSelected = new String[1];
final int intTest1;
int intTest2;
int intTest3;
int intFinal;
int intFinalGrade;
final int[] intSelection = new int[1];
int intPointsPossible = 400;
int finalGrades[] = new int[0];
AssetManager am = getAssets();
ArrayList<String> list = new ArrayList<String>();
BufferedReader reader;
StringBuilder sb = new StringBuilder();
String[] tempList = new String[0];
final ArrayList<Integer> finalList = new ArrayList<>();
String line = " ";
String item = " ";
try {
InputStream input = am.open("grades.txt");
reader = new BufferedReader(new InputStreamReader(input));
while (line != null){
line = reader.readLine();
list.add(line);
}
input.close();
list.remove(0);
for (int i = 0; i < list.size(); i++){
sb.append(i);
}
tempList = sb.toString().split("\\s+");
for (int j = 0; j < tempList.length; j++){
finalList.add(j);
}
} catch (IOException e) {
e.printStackTrace();
}
final Spinner spinner = (Spinner)findViewById(R.id.spName);
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
intSelection[0] = spinner.getSelectedItemPosition();
strSelected[0] = spinner.getSelectedItem().toString();
name = (TextView)findViewById(R.id.tvDisplayName);
name.setText(strSelected[0]);
grade = (TextView)findViewById(R.id.tvDisplayGrade);
if (intSelection[0] == 0){
int t1 = finalList.get(2);
int t2 = finalList.get(3);
int t3 = finalList.get(4);
int t4 = finalList.get(5);
Grades(t1,t2,t3,t4);
}
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
}
});
}
public String Grades(int t1, int t2, int t3, int t4){
int test1 = 0, test2 = 0, test3 = 0, finalScore = 0;
double finalGrade;
String letterGrade;
finalGrade = (test1 + test2 + test3 + finalScore)/4;
if (finalGrade > 93){
letterGrade = "A";
}
else if (finalGrade > 88){
letterGrade = "B+";
}
else if (finalGrade > 83){
letterGrade = "B";
}
else if (finalGrade > 78){
letterGrade = "C+";
}
else if (finalGrade > 73){
letterGrade = "C";
}
else if (finalGrade > 65){
letterGrade = "D";
}
else {
letterGrade = "F";
}
return letterGrade;
}
}