Jsem rozvojové můj první libGDX hru, je nějaký Nečinný hra s desktop simulátor. Ale moje otázka je o Java obecně.
V této hře bych chtěl spravovat GameEvents data z CSV souboru při prvním spuštění, a později to by mělo být uloženo na Gdx.App.Preference jako Řetězec, který funguje dobře.
Ale to, co nefunguje, jak se očekávalo, je to, co se zdá být nejjednodušší věc, CSV parse metoda, není nic příliš komplikované, já jsem jen dělal smyčce pro každý CSV pole a ukládat jej v GameEvent. Třídy (všechny primitivní datové typy int, string a float) a vlastně to funguje... ale to říká, že některé booleovské hodnoty jsou false když to tak ve skutečnosti nebylo.
Tohle je můj parse metoda:
private void parseEventData(String data) {
String[] text = data.split(";");
int i=0;
for(String field : text) {
switch(i){
case 0:
this.id=field;
break;
case 1:
this.eventState=field;
break;
case 2:
[...]
case 8:
this.mainEvent= (Boolean.getBoolean(field));
break;
case 9:
this.active= (Boolean.getBoolean(field));
break;
case 10:
this.continueEvent= (Boolean.getBoolean(field));
break;
[...]
}
i++;
}
}
Ladit to, že jsem součástí pár println(), první tisky "dat" raw, protože vstupuje s 2 GameEvents hodnoty:
1970MM01;ČEKÁ;titlelonglonglong//titulků//Mom//toto je maintext//je lepší, když jste mohli oddělit to v//různé linky;MAIL//SCHR;1970MM02;NULL;MAIL;MAIL;true;true;true;1970;1;0.5;0.5;1;1;0;pravda;60 1970MM02;ČEKÁ; childtitlewith velmi, velmi, velmi, velmi dlouhý název//titulků//bla blah//booooh;MANAGER//MANAGERb//MANAGERc;NULL;NULL;MAIL;MAIL;false;true;false;1970;0;0.5;0.5;1;1;0;true;30
A to ostatní je po parsování je v GameEvent.class jen analyzován bez absolvování jakékoli jiné metody...
1970MM01;ČEKÁ;titlelonglonglong//titulků//Mom//toto je maintext//je lepší, když jste mohli oddělit to v//různé linky;MAIL//SCHR;1970MM02;NULL;MAIL;MAIL;false;false;false;1970;1.0;0.5;0.5;1.0;1.0;0.0;pravda;60
Prošel jsem dokumentaci o Boolean.valueOf() a Boolean.getBoolean... ale jak dát nějaké náhodné-hledá hodnoty v některých oblastech, ale funguje dobře, v jiných...
Co dělám špatně?
P. S: vím, že můžu udělat nějaké řešení s "pokud" prohlášení, a mění true/false podle 0/1, nebo pomocí Json, ale potřebuju vědět, co jsem nepochopil v něco tak jednoduché jako csv parser T. T