Preparation tasks, Java, input

Здравейте,

търсих на няколко места, но изглежда не намирам това, което ми трябва или е което намирам е написано по по-сложен начин, въпросът ми е относно input-ите, които се подават при задачите, в practical tasks най-често са всяко следващо число на нов ред, с квото се работи лесно, но ако инпутът ни е например, първи ред : число n (колко реда следват), и след това на всеки следващ ред : дума(например име), интервал, и след това число (например някакви точки)
ex.
3
Maria 56
Anna 95
Miro 32
как по най-лесния начин можем да си вземем инпутите и да работим с тях?

Здравей,

Ако съм разбрал правилно, мисля че трябва да стане по следня начин:
взимаш първото число с gets() и понеже входа идва като стринг, ако не е упоменато друго, след това го парсваш към число, за да може да го използваш като такова. При взимането на сладващата линия от входа отново с gets() получаваш “Maria 56”, което отвоно е стринг. За да вземеш името и числото след това, трябва да сплитнеш така получения резултат по спейс и ще получиш масив с два елемента. Първия ще бъде името, което може да присвоиш на променлива , а втория числото което отново трябва да парснеш от стринг към число.

Поздрави!

1 Like

Благодаря!

Доколкото разбирам, за всеки ред правим нов масив или?

Не е задължително. Зависи какво е условието на задачата. Просто си вземаш входа линия по линия и след като се обработят стойностите, се използват в зависимост от условието. Масива или променливата, с която се взема входа могат да бъдат едни и същи и да се презаписват стойностите вътре за всяка нова линия от входа, след като разбира се предходните стойности са обработени, примерно запазени в други масиви или извършени изчисления с тях.

Поздрави!

1 Like

Записваш всичките n променливи в стринг масив. После в зависимост от условието можеш да обходиш масива и всеки стринг да го разделиш на 2 части - за примера който си дал първата стринг втората int или double.
Понеже в заглажието си опеменала Java, възможно е да ти кажат че входа ти е на един ред - множество стойности разделени с интервал или запетая. Тогава го присвояваш на стринг променлива и нея можеш да разделиш на масив от отделните стойности.
Надявам се да съм бил ясен, и да съм помогнал.

Благодаря за отговора,

На мен като цяло идеята ми е ясна, просто като се опитам да го разпиша не се получава и цялата идея на темата беше именно някакво примерно разписване на масива и обхождането му

//initialize array from the console where all elements are entered on a single line e.g.
// 1 2 3 4 5

  System.out.println("Enter array on a single line using space for delimiter:");
  Scanner scanner = new Scanner(System.in);
  line = scanner.nextLine();
  String[] strArray = line.split(" ");
  int[] array5 = new int[strArray.length];
  for (int i = 0; i < strArray.length; i++) {
      array5[i] = Integer.parseInt(strArray[i]);
  }

надявам се това да ти свърши работа

1 Like