Scanner pomija wczytywanie Stringa

Scanner pomija wczytywanie Stringa
GypsyOne
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 17
0

Mam problem w którym chodzi o to, że w linijkach, gdzie powinno wczytać wartości zmiennych n i s wczytuje tylko integera, a Stringa kompletnie pomija przez co niemożliwe jest dalsze wykonywanie kodu. Dlaczego tak się dzieje czy to jest normalne, a błąd tkwi w mojej niewiedzy?

Kopiuj
import java.util.Scanner;

public class Spoj2 {

		public static void main(String[] args){
			int n;
			Scanner in=new Scanner(System.in);
			String s;
			
			n=in.nextInt();
			s=in.nextLine();
			
			for(int i=0; i<=n/2; i++){
				for(int j=0; j<n/2-i; j++){
					System.out.print(".");
				}
				
				System.out.print(s.substring(n/2-i,n/2+1+i));
				
				for(int k=0; k<n/2-i; k++){
					System.out.print(".");
				}
				
				System.out.println();
			}
			
			
		}
}

Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
0

nextInt nie kasuje z bufora znaku nowej linii więc nextLine pobierze tylko "enter" za wprowadzoną liczbą.

GypsyOne
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 17
0

A jak mogę to naprawić w takim razie?

Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
0

Najprościej? Dodaj nextLine zaraz za tym nextInt, które nic nie będzie wczytywać.

GypsyOne
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 17
0

Dziękuję Ci druhu <3
zaakceptowano
edit run

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.