Dessin structurel.
UserDataBean
package mapScore_plus_easy;
import java.util.List;
public class UserDataBean {
private String userName;
private List<String> scoresList;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public List<String> getScoresList() {
return scoresList;
}
public void setScoresList(List<String> scoresList) {
this.scoresList = scoresList;
}
}
Main
package mapScore_plus_easy;
public class Main {
public static void main(String[] args) {
//Instancier la classe de calcul du point total
CalculateSum calculatesum = new CalculateSum();
//Instancier une classe qui rassemble des informations dans une instance userDataBean et la renvoie
ScoreReturn sr = new ScoreReturn();
UserDataBean inputResult = sr.inputReturn("Tanaka");
System.out.println(inputResult.getUserName() + inputResult.getScoresList());
//Appelez la méthode de calcul du point total en utilisant la valeur de retour de la méthode ci-dessus comme argument réel
calculatesum.calculate(inputResult);
UserDataBean inputResult2 = sr.inputReturn("Sato");
System.out.println(inputResult2.getUserName() + inputResult2.getScoresList());
//Appelez la méthode de calcul du point total en utilisant la valeur de retour de la méthode ci-dessus comme argument réel
calculatesum.calculate(inputResult2);
}
}
Personnellement, j'étais un peu inquiet et j'ai eu du mal à utiliser le listeur. Créez une sampleList en tant que nouvelle liste, ajoutez-y des valeurs et utilisez-la enfin comme argument de définition. (Si vous ne créez pas de nouvelle liste et que vous n'utilisez pas la valeur comme argument de setter plusieurs fois, le setter sera mis à jour au lieu d'être ajouté, il sera donc réécrit à chaque fois.)
package mapScore_plus_easy;
import java.util.ArrayList;
import java.util.List;
public class ScoreReturn {
//Une méthode qui définit les valeurs dans userName et scoresList de userDataBean et renvoie son instance
public UserDataBean inputReturn (String person_Name){
UserDataBean userDataBean = new UserDataBean();
userDataBean.setUserName(person_Name);
//Créez un exemple de liste.
List<String> sampleList = new ArrayList<String>();
//Si vous initialisez ces variables aléatoires en tant que champs,
//M. Tanaka et M. Sato ont obtenu exactement le même score, ce qui n'est pas naturel.
int randomScore_Japanese = new java.util.Random().nextInt(101);
int randomScore_Math = new java.util.Random().nextInt(101);
int randomScore_English = new java.util.Random().nextInt(101);
//Liste des cours
String score_japanese = Integer.toString(randomScore_Japanese);
sampleList.add(("langue nationale" + ":" + score_japanese ));
String score_math = Integer.toString(randomScore_Math);
sampleList.add("Math" + ":" + score_math );
String score_eng = Integer.toString(randomScore_English);
sampleList.add(("Anglais" + ":" + score_eng ));
userDataBean.setScoresList(sampleList);
//Renvoie une instance contenant les informations.
return userDataBean;
}
}
CalculateSum
package mapScore_plus_easy;
import java.util.List;
public class CalculateSum {
UserDataBean userdatabean = new UserDataBean();
public void calculate(UserDataBean userDataBean){
List<String> scoresList = userDataBean.getScoresList();
int sumScore = 0;
for(String element : scoresList){
// String deletedElement = element.replaceAll("[^0-9]","");
//Split est plus polyvalent dans ce cas que de remplacer.
String[] splitedElement = element.split(":");
String t = splitedElement[1];
int integerElement = Integer.parseInt(t);
sumScore += integerElement;
}
System.out.println(userDataBean.getUserName() + "Le score total de" + sumScore + "Est un point");
}
}
Résultat d'exécution
Tanaka[langue nationale:20,Math:8,Anglais:19]
Le score total de M. Tanaka est de 47 points
Sato[langue nationale:37,Math:78,Anglais:89]
La note totale de M. Sato est de 204 points
Il est plus facile de comprendre les variables de liste si la convention de dénomination est "○○ Liste".
Recommended Posts