Pominięcie znaku wczytując z pliku

0

Mam plik o takiej strukturze:
(1,2)
(2,5)
.
.
.

I chcę sobie wczytać te int i do 2 zmiennej int po przecinku ale nie mam pojęcia w jaki sposób pominąć nawias i przecinek

0

Ja generalnie polecam wykorzystanie java.nio.file.Files.lines(java.nio.file.Path) (wczytuje strumieniowo - doczytując kolejne linie w miarę potrzeby), stworzenie metody parsującej z wykorzystaniem np. java.util.regex.Pattern, którą sobie przekażesz jako argument do funkcji java.utl.stream.Stream.map(java.util.Function).

0

Wczytywanie pliku mam do Scannera, z tym nie mam problemu, później robię

Scanner s = new Scanner(new File("dane.txt"));
while(s.hasNextLine()) {
}

tylko pytanie jak pominąć te niepotrzebne symbole

1

Wykorzystaj to, o czym napisałem, pomijając etap wczytywania pliku - tj. punkt Parsowanie pliku.
Generalnie, z metod klasy String możesz popatrzeć na indexOf(), lastIndexOf(), substring(), replace(), replaceAll(), transform().
Jeśli chodzi o klasę Pattern, to możesz najpierw poczytać o wyrażeniach regularnych - Vogella: Java Regular Expressions, Oracle: Regular Expressions.

Ja bym wybrał wyrażenia regularne, bo łatwiej byłoby mi to zapisać, ale jeśli lepiej będziesz się czuł z substring() czy replace(), to nie ma sensu, żebyś teraz się rzucał na RegExy.

2

Spójrz na to z innej strony: zamiast coś pomijać, wskaż co konkretnie chcesz znaleźć

Scanner scanner = new Scanner(new File(path));
String line;
int a, b, x;

while (scanner.hasNextLine()) {
	line = scanner.nextLine();
	x = line.indexOf(",");
	a = Integer.valueOf(line.substring(1, x));
	b = Integer.valueOf(line.substring(x + 1, line.length() - 1));
	System.out.println(String.format("%d %d", a, b));
}

Nie wytłumaczę jak działa ten kod, niech autor trochę ruszy mózgownicą.

0

Dzięki ale zrozumienie tego kodu nie jest ciężkie XD

1 użytkowników online, w tym zalogowanych: 0, gości: 1