oui, c'est vrai, même avec System, ça marche pas(
je galère tjr...en fait j'ai l'impression que le code ne s'exécute pas convenablement, y a des déclarations qui manquent il me semble.
je vais rappler ce que je voulais faire:
le fichier txt:
id|age|sexe|profession|CP
je veux calculer des indices de similarités pour les attributs: age, sexe et CP(Nat) entre utilisateurs
l'algo se présente comme ça: Corr = age au+ sexe au + Nat au/3
age au = 40 +|age a - age u|/20
sexe au = 1 si sex a = sex u
ou = 0 si sex a # sex u
nat au = 2 si nat a = nat u
ou = 0 si nat a # nat u
j'ai considéré que je vais comparer l'user N°1 avec l'ensemble des users restants.
user N°1---> Age=24 , sexe = M , Nat = 87711
ce qui me pose un peu prb, c que pour les attributs Sexe et Nat, sur le fichier texte c'est des string, par contre en algo, ça devient des int.
qqu pourrait me conseiller? je ss débutante et j'arrive pas à m'en sortir
----
public class MyObject
{
private int id;
private int age;
private int sexe;
private String profession;
private int nat;
private String filePath;
private String File;
/**
* Constructeur de la classe MyObject.
*/
public MyObject() {
super();
}
public MyObject(File fichier) throws IOException {
super();
this.filePath = fichier.getPath();
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getNat() {
return nat;
}
public void setNat(int nat) {
this.nat = nat;
}
public String getProfession() {
return profession;
}
public void setProfession(String profession) {
this.profession = profession;
}
public int getSexe() {
return sexe;
}
public void setSexe(int sexe) {
this.sexe = sexe;
}
public double Corr_demog(String filePath) throws IOException {
double Corr = 0.0;
//this.filePath = fichier.getPath();
//parseFile();
// Creation d'un scanner pour lire le fichier
Scanner scanner = new Scanner(new File(filePath)).useDelimiter("|" );
// La liste des objets lus dans le fichier
List<MyObject> data = new ArrayList<MyObject>();
while (scanner.hasNext()) {
// Creation d'un nouvel objet
MyObject myObject = new MyObject();
// Valorisation des champ de l'objet
int id = scanner.nextInt();
int Age = scanner.nextInt();
int Sexe = scanner.nextInt();
String Profession = scanner.next();
int Nat = scanner.nextInt();
// Ajout de l'objet à la liste
data.add(myObject);
}
double Age_au = 0.0;
double Sexe_au = 0.0;
double Nat_au = 0.0;
int Sex_a = 0;
String Sex_u = M;
int Nat_a = 0;
int Nat_u = 0;
int Age_a = 24;
// Pour chaque objet
for (MyObject object : data) {
int Age_u = object.getAge();
int Sexe_u = object.getSexe();
Age_au = 40 - Math.abs(Age_a - Age_u) / 20;
if (Sex_a == Sex_u) {
Sexe_au = 1.0;
} else
Sexe_au = 0.1;
if (Nat_a == Nat_u)
{
Nat_au = 2;
}
else
Nat_au = 0.1;
Corr = (Age_au + Sexe_au + Nat_au) / 3;
}
System.out.println("resultat :" +Corr);
return Corr;
}