Професионална програма
Loading...
+ Нов въпрос
vancho avatar vancho 430 Точки

Java - How to split input?

Имам проблем с прочитането на входа или по-точно сплитването. От скоро започнах да пиша на Java, супер начинаещ съм в Java, но със C# съм advanced. Искам да направя Console.ReadLine().Split(' '); на Java. Това което успях да сътворя е: 

Scanner console = new Scanner(System.in).useDelimiter("\\s");
String[] words = new String[2];
for (int i = 0; i < 2; i++) {
    String currentWord = console.next();
    words[i] = currentWord;
}

но винаги при последното иска да въведа още един ред за инпут, иначе стои и чака...примерно искам да сплитна "Gosho Pesho" в масив и все едно чака трети аргумент... (като сплитвам числа, примерно: 2 5 4 6 8 15, пак чака за друго след 15).

Тагове:
-1
Java Advanced 03/05/2016 22:02:39
Ivanov.Ivan avatar Ivanov.Ivan Trainer 558 Точки
Best Answer

Заповядай

Scanner sc = new Scanner(System.in);

        //input: 1 2 3 4 5;

        String[] input = sc.nextLine().split("\\s+");
        //output [1, 2, 3, 4, 5]
        System.out.println(Arrays.toString(input));

 

1
vancho avatar vancho 430 Точки

Благодаря, колега! Явно е трябвало да добавя nextLine() преди .split() за да не мрънка.

-1
Ivanov.Ivan avatar Ivanov.Ivan Trainer 558 Точки

sc.next() = Console.Read();

sc.nextLine() = Console.ReadLine();

И за разлика от C# в Java в сплит се подава стринг регекс, а не чар. 

Успех

0
Filkolev avatar Filkolev 4486 Точки

А защо просто не ползваш split()?

0
vancho avatar vancho 430 Точки

Пробвах (на IntelliJ) ама ми го оцветява в червено, сякаш няма такава функция, и за това мисля, че е друго. В нета прочетох за същото, което и ти ми казваш. Да не би да трябва да импортна някакво java.util. за да тръгне?

-1
03/05/2016 22:19:32
alex1966 avatar alex1966 255 Точки

В Java в split() метода трябва да напишеш разделител, доколкото в C# като напишеш Split() и то ти го разделя по празно място, но в Java не е така и вътре в сплит метода трябва да напишеш задължително разделител, затова ти гърми, колегата по горе е дал хубав пример за сплит.
Поздрави!

0
vancho avatar vancho 430 Точки

Да благодаря, то това го разбрах, но и в C# имаш разделители на сплита: .Split(new[] {' ', '|', и т.н.});, ако не напишеш нищо сплитва по спейс. Поздрави.

-1
04/05/2016 08:43:35