Pominięcie znaku wczytując z pliku

Pominięcie znaku wczytując z pliku
M4
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 221
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

catom
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 58
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).

M4
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 221
0

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

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

tylko pytanie jak pominąć te niepotrzebne symbole

catom
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 58
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.

PerlMonk
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Warszawa 🐪
  • Postów: 1719
2

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

Kopiuj
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ą.

M4
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 221
0

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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.