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 4482 Точки

А защо просто не ползваш 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
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.