Ich habe eine Textdatei data.txt. Ich möchte die Daten in eine Hashmap eingeben und ein Datamapping durchführen. Wann immer ich den Wert ohne Punkt() treffe. Ich werde einen Fehler bekommenWie zeichne ich einen String mit dem vorletzten Punkt (.) In Java?
Wie überwinde ich es, indem ich diese Einträge ohne Punkt (.) Überspringe.
Ich habe ein kleines Schnipsel erstellt, um mein Problem zu veranschaulichen.
static HashMap<String, String> newList = new HashMap<>();
public static void main(String[] args) throws FileNotFoundException, IOException {
String inputFile = "data.txt";
BufferedReader brInput = new BufferedReader(new FileReader(inputFile));
String line;
while ((line = brInput.readLine()) != null) {
newList.put(line, "x");
}
for (Map.Entry<String, String> entry : newList.entrySet()) {
String getAfterDot = entry.getKey();
String[] split = getAfterDot.split("\\.");
String beforeDot = "";
beforeDot = getAfterDot.substring(0, getAfterDot.lastIndexOf("."));
System.out.println(beforeDot);
}
}
data.txt
0
0.1
0.2
0.3.5.6
0.2.1
2.2
erwartete Ergebnis, wenn i die Karte drucken (braucht nicht in Ordnung zu sein) lastIndexOf(int ch)
0
0
0.3.5
0.2
2
Ich bekomme immer noch eine Ausnahme im Thread "Haupt" java.lang.StringIndexOutOfBoundsException: String-Index außerhalb des Bereichs: -1 – newbieprogrammer
@newbieprogrammer, welche Zeile ist es? –
int lastIndxDot = getAfterDot.lastIndexOf ('.'); beforeDot = getAfterDotstring (0, lastIndxDot); – newbieprogrammer