Java brauzerlari sinfida satrlarni formatlash

Scanner i=new Scanner(System.in);
  System.out.println("Enter an integer: ");
  int in=i.nextInt();
        System.out.println("Enter an floating point number: ");

  double d=i.nextDouble();
        System.out.println("Enter a string: ");

  String str=i.next();
  System.out.printf("%s%n,Sum of%2d and %.2f is %.2f%n",str,in ,d,in+d);

Muammo brauzer orqali kiritilgan satrni formatlash bilan bog'liq. Men "natija" ga kirishga harakat qilardim, ammo printf() faqatgina stringning "Natija" qismini ko'radi, shuning uchun bo'sh joy buyrug'i nima? rahmat

1
nextLine() qatoriga next() ni o'zgartirganingizda quyidagilar haqida xabardor bo'ling: Brauzer next (), nextInt() yoki boshqa nextFoo() usullaridan foydalangandan so'ng nextLine() atlamoqda .
qo'shib qo'ydi muallif Andreas, manba
nextLine() qatoriga next() ni o'zgartirganingizda quyidagilar haqida xabardor bo'ling: Brauzer next (), nextInt() yoki boshqa nextFoo() usullaridan foydalangandan so'ng nextLine() atlamoqda .
qo'shib qo'ydi muallif Andreas, manba
Aksincha, @SanketMakani; Javoblar sharhlarda emas, balki javoblarda bo'lishi kerak. Agar u dupe bo'lsa, u dupe sifatida belgilanishi kerak. Izohlardagi javoblarni joylashtirish kelajakda keladigan odamlarni aslida javobni ko'rish uchun qiyinlashtiradi.
qo'shib qo'ydi muallif Dave Newton, manba
Aksincha, @SanketMakani; Javoblar sharhlarda emas, balki javoblarda bo'lishi kerak. Agar u dupe bo'lsa, u dupe sifatida belgilanishi kerak. Izohlardagi javoblarni joylashtirish kelajakda keladigan odamlarni aslida javobni ko'rish uchun qiyinlashtiradi.
qo'shib qo'ydi muallif Dave Newton, manba
i.next() keyingi so'zni oladi. ehtimol nextLine ni xohlaysizmi?
qo'shib qo'ydi muallif Patrick Parker, manba
i.next() keyingi so'zni oladi. ehtimol nextLine ni xohlaysizmi?
qo'shib qo'ydi muallif Patrick Parker, manba
i.nextLine ();//Yangi satr belgilarining oldini olish uchun ..... keyin ushbu qatorni o'zgartiring. String str = i.nextLine ();
qo'shib qo'ydi muallif Sanket Makani, manba
Shunday qilib, skanerdan kirishni bas qilaman va printf() ga o'ngga boraman. String orqali skaner orqali qanday qilib ishlov berishni qiziqtirganman. Shunday qilib, "Agar mag'lubiyatga kiriting:" qismini "Menga natija" ni kiritishingiz mumkin va natijada "Natijada
qo'shib qo'ydi muallif Yurodivi, manba
Shunday qilib, skanerdan kirishni bas qilaman va printf() ga o'ngga boraman. String orqali skaner orqali qanday qilib ishlov berishni qiziqtirganman. Shunday qilib, "Agar mag'lubiyatga kiriting:" qismini "Menga natija" ni kiritishingiz mumkin va natijada "Natijada
qo'shib qo'ydi muallif Yurodivi, manba

8 javoblar

Bir nechta mumkin echimlar mavjud, ammo men sizning boshqa kirishlaringiz bilan izchil xatti-harakatni ta'minlaydi deb o'ylayman:

System.out.println("Enter an floating point number: ");
double d = i.nextDouble();
i.skip("((?

Ushbu yondashuv agar xohlasangiz, bitta yo'nalishda barcha kirishlarni kiritish imkonini beradi.

Misol uchun:

1.2 1.2 Natijada

Agar siz har bir kirishdan keyin foydalanuvchilaringizni Enter ni bosing ni bosishni istasangiz, u holda brauzerning nextLine() usuli bilan barcha kirishlarni o'qib chiqishga eng to'g'ri keladi va kerak bo'lganda ajralib chiqadi (Integer.parseInt, va boshqalar).


Eslatmalar:

  • The linebreak matcher \R is available in Java-8 or later. Prior to that version, you would have to use the "equivalent" pattern \u000D\u000A|[\u000A\u000B\u000C\u000D\u0085\u2028\u2029]
  • The atomic grouping (?> ... ) was added for Java-9 compatibility. See bug report JDK-8176029 for details.
1
qo'shib qo'ydi

Bir nechta mumkin echimlar mavjud, ammo men sizning boshqa kirishlaringiz bilan izchil xatti-harakatni ta'minlaydi deb o'ylayman:

System.out.println("Enter an floating point number: ");
double d = i.nextDouble();
i.skip("((?

Ushbu yondashuv agar xohlasangiz, bitta yo'nalishda barcha kirishlarni kiritish imkonini beradi.

Misol uchun:

1.2 1.2 Natijada

Agar siz har bir kirishdan keyin foydalanuvchilaringizni Enter ni bosing ni bosishni istasangiz, u holda brauzerning nextLine() usuli bilan barcha kirishlarni o'qib chiqishga eng to'g'ri keladi va kerak bo'lganda ajralib chiqadi (Integer.parseInt, va boshqalar).


Eslatmalar:

  • The linebreak matcher \R is available in Java-8 or later. Prior to that version, you would have to use the "equivalent" pattern \u000D\u000A|[\u000A\u000B\u000C\u000D\u0085\u2028\u2029]
  • The atomic grouping (?> ... ) was added for Java-9 compatibility. See bug report JDK-8176029 for details.
1
qo'shib qo'ydi

Mening muammoim brauzer orqali kiritilgan satrlarni formatlashda. Men   "Natija" ga kirishga urinib ko'rgan, ammo printf() faqatgina ko'rinadigan ko'rinadi   Stringning "Natija" qismi.

buni o'zgartirish:

String str=i.next();

Bunga :

String str=i.nextLine();

next() will only return what comes before a space. On the other hand nextLine() returns the input including space between the words.

0
qo'shib qo'ydi
agar juftlikdan keyin yangi chiziq bo'lsa, birinchi bo'lib iste'mol qilish kerak
qo'shib qo'ydi muallif Patrick Parker, manba
Faqatgina izohlarda hal qilinishi mumkin bo'lgan bunday savollarga javob berishning hojati yo'q. Faqat ba'zi fikrlarga javob bermang. : /
qo'shib qo'ydi muallif Sanket Makani, manba

Mening muammoim brauzer orqali kiritilgan satrlarni formatlashda. Men   "Natija" ga kirishga urinib ko'rgan, ammo printf() faqatgina ko'rinadigan ko'rinadi   Stringning "Natija" qismi.

buni o'zgartirish:

String str=i.next();

Bunga :

String str=i.nextLine();

next() will only return what comes before a space. On the other hand nextLine() returns the input including space between the words.

0
qo'shib qo'ydi
agar juftlikdan keyin yangi chiziq bo'lsa, birinchi bo'lib iste'mol qilish kerak
qo'shib qo'ydi muallif Patrick Parker, manba
Faqatgina izohlarda hal qilinishi mumkin bo'lgan bunday savollarga javob berishning hojati yo'q. Faqat ba'zi fikrlarga javob bermang. : /
qo'shib qo'ydi muallif Sanket Makani, manba

OK, bu kabi hiyla qilishingiz mumkin, faqat yangi mag'lubiyatga bosib chiqarishni qo'shing

String str=i.next();
  String strNew=str;
0
qo'shib qo'ydi
Endi @Yurodivi javobni ko'ring
qo'shib qo'ydi muallif naib khan, manba
Bu muammoni faqat ishlab chiqarishga o'tkazmasa, bu qismda muammo System.out.printf ("% s% n,% 2d va% .2f ning jami% .2f% n", str, in, d, in + d); Brauzer menejeri orqali faqat brauzerni ko'rishi mumkin, masalan brauzer orqali "Natijada", lekin faqat "Natija" deb yoziladi. " Brauzerda mag'lubiyatni qanday qilib o'zgartirishim mumkin?
qo'shib qo'ydi muallif Yurodivi, manba

OK, bu kabi hiyla qilishingiz mumkin, faqat yangi mag'lubiyatga bosib chiqarishni qo'shing

String str=i.next();
  String strNew=str;
0
qo'shib qo'ydi
Endi @Yurodivi javobni ko'ring
qo'shib qo'ydi muallif naib khan, manba
Bu muammoni faqat ishlab chiqarishga o'tkazmasa, bu qismda muammo System.out.printf ("% s% n,% 2d va% .2f ning jami% .2f% n", str, in, d, in + d); Brauzer menejeri orqali faqat brauzerni ko'rishi mumkin, masalan brauzer orqali "Natijada", lekin faqat "Natija" deb yoziladi. " Brauzerda mag'lubiyatni qanday qilib o'zgartirishim mumkin?
qo'shib qo'ydi muallif Yurodivi, manba

Hatto bir necha kun oldin bu muammoga duch keldim, u erda int yoki juftlik so'raganimdan keyin yangi qatorni kiritish kerak edi. Buni foydalanib men hal qildim -

int j=scan.nextInt();
double f=scan.nextDouble();
scan.skip("\n");
String str=scan.nextLine();

"Scan - Scanner obyektimning nomi".

Iltimos, bu erda scan.skip ("\ n") dan foydalanganman, chunki raqamni kiritganingizda, u faqat sonni emas, balki faqat shu raqamni iste'mol qiladi, shuning uchun scan.skip ("\ n ") , bu tamponda mavjud bo'lgan chiziqni o'chiradi va shuning uchun biz qaytadan tekshirganimizda yangi satrdan boshlanadi va kerakli mag'lubiyatni olamiz. Umid qilamanki yordam beradi!

0
qo'shib qo'ydi

Hatto bir necha kun oldin bu muammoga duch keldim, u erda int yoki juftlik so'raganimdan keyin yangi qatorni kiritish kerak edi. Buni foydalanib men hal qildim -

int j=scan.nextInt();
double f=scan.nextDouble();
scan.skip("\n");
String str=scan.nextLine();

"Scan - Scanner obyektimning nomi".

Iltimos, bu erda scan.skip ("\ n") dan foydalanganman, chunki raqamni kiritganingizda, u faqat sonni emas, balki faqat shu raqamni iste'mol qiladi, shuning uchun scan.skip ("\ n ") , bu tamponda mavjud bo'lgan chiziqni o'chiradi va shuning uchun biz qaytadan tekshirganimizda yangi satrdan boshlanadi va kerakli mag'lubiyatni olamiz. Umid qilamanki yordam beradi!

0
qo'shib qo'ydi