Frage von Jibenni, 61

Java Integer aufgeben - aber nicht wenn ein buchstabe enthalten ist?

Hei, brauche eine If() "filter. ich gebe eine reihe von Integer aus und falls mal eine bugg passiert bzw ein buchstabe drin vor kommt soll er nicht ausgegeben werden danke

Antwort
von TUrabbIT, 17

Kannst du mal bitte den relevanten Teil deines Code (formatiert!) posten?
So aufs gerade wohl irritiert mich die Frage, da ein Integer nie ein Buchstabe sein kann.

Kommentar von Jibenni ,
FileReader fileReader = new FileReader(selectedfile);
BufferedReader bufferedReader = new BufferedReader(fileReader);


String zeile = "";
bufferedReader.readLine();



while ((zeile = bufferedReader.readLine()) != null) {
AuswertungsRahmenInfos auswertungsRahmenInfos = new AuswertungsRahmenInfos();
String[] s = zeile.split(";", -2);

if (!s[0].isEmpty()) {
auswertungsRahmenInfos.setId(s[0]);
}
if (!s[1].isEmpty()) {
auswertungsRahmenInfos.setRahmenTypXmlSerializabl(s[1]);
}
if (!s[2].isEmpty()) {
auswertungsRahmenInfos.setGewinnermittlungsartXmlSerializable(s[2]);
}
if (!s[3].isEmpty()) {
String[] split = s[3].split("\\|");
for (int e = 0; e < split.length; e++) {
auswertungsRahmenInfos.addKontenrahmen(Integer.valueOf(split[e])); // hier ist das problem
}
}
Kommentar von TUrabbIT ,

Das müsste so gehen:

if (!s[3].isEmpty()) {
String[] split = s[3].split("\\|");
for (int e = 0; e < split.length; e++) {
try {
auswertungsRahmenInfos.addKontenrahmen(Integer.valueOf(split[e]));
}
catch(NumberFormatException nfe) {
System.out.println("No Integer: " + split[e]);
}
}
}
Kommentar von Borgler94 ,

teile das ganze bitte in methoden auf... ist derzeit noch "grauslich" programmiert eine Methode sollte wenns geht so wenig zeilen wie möglich haben

Antwort
von Borgler94, 46

hast du die Integer in einem Array, einer Liste, oder in einem String?

Kommentar von Jibenni ,

in einer tabelle geh ich über einen loop zeile for zeile durch:) und ich füge sie einerm array hinzu, wobei der setter ein integer ist

Kommentar von Borgler94 ,

ist die Tabelle immer gleich groß? weil sonst würde ich eine ArrayList nehmen wenn du die Werte schon in einem Integer-Array hast kann in dem kein a oder so mehr vorkommen oder geht es um das einlesen ... also wie du es machen sollst dass kein buchstabe eingelesen wird wie genau liest du es ein ... bufferedreader?

Kommentar von Jibenni ,

ich erstelle ein grid also eine benutzeroberfläche, vorher ist eine riesige dateienstruktur als csv vorhanden die ich einlese....und ja ich erstelle das grid über den bufferedreader:)

aber brauche das filtern beim erstellen und beim einlesen 

also wie kann ich das jetzt raus filtern :(

Kommentar von Borgler94 ,

am besten ist wsl ein try catch block geeignet der im try Integer.parseInt( line ); *füge hinzu* enthält und im catch einfach nichts (achtung aufpassen mit index, nicht dass du ein element überspringst) bin grad leider nur am handy.. könnte dir in 1,5 std ca ein beispiel schicken am besten du machst dir eine hilfsmethode public bolean isInt(String s){ try{ Integer.parseInt(s); return true;} catch(Exception e){ return false; } }

Kommentar von Jibenni ,

finde keine lösung hab immer eine NumberFormatException :( 

Kommentar von TUrabbIT ,

Exakt diese solltst du im catch abfangen.

Kommentar von Jibenni ,

und wie :p xD

Kommentar von Borgler94 ,

auch bei integern?

Kommentar von Jibenni ,

ne nur wenn ein buchstabe dabei is ansonsten funktioniert alles :P



und mit dem Integer.parseInt bzw integer.valueOf klappt auch nicht 


hab auch schon alles mögliche mit .getclass() versucht



Kommentar von Borgler94 ,

wenn du es mod try catch machst dann fängst du diese exception ja ab... dann darf eig. keine weitere mehr kommen ^^

Kommentar von Borgler94 ,

mod sollte mit heißen :P

Kommentar von Jibenni ,

wie fügt man diese excaption manuell hinzu? :o

Kommentar von Borgler94 ,

du schreibst genau die methode die ich im vorigen kommentar geschrieben habe und dann verwendest du sie und dann gibts keine exceptions mehr oder du liest ein tutorial zu try catch.. dauert 5 minuten

Kommentar von Borgler94 ,

man kann einfach try{mach irgendwas} catch(Exception){ mach dies wenn ein fehler auftrit} machen oder statt Exception NumberFormatException

Kommentar von Jibenni ,

habs danke xD 

Keine passende Antwort gefunden?

Fragen Sie die Community