Java'da Tarayıcı nasıl kullanılır

How Use Scanner Java



Java'daki Tarayıcı, java.util paketindeki bir sınıftır. Bu sınıf, bir diziden, klavyeden, dosyadan veya ağ soketinden girdi okumayı amaçlar. Bu makale yalnızca klavyeden girdi okumaya ve sonucu terminal penceresinde görüntülemeye odaklanmaktadır. Dosya veya ağ kanalından gelen girdileri okumak için benzer fikirler kullanılabilir. Tarayıcı, terminal penceresine yazdırmıyor. Terminale yazdırmak için System.out nesnesini kullanın. Aşağıda gösterildiği gibi, bu nesneyi terminale yazdırmak için kullanmak kolaydır.

Scanner sınıfını kullanmak için önce import edilmesi gerekir. Bundan sonra, ondan bir nesne başlatılmalıdır. Tarayıcı nesnesini kullandıktan sonra kapatılmalıdır. Klavyeyi temsil eden giriş akışı nesnesi System.in'dir. Tarayıcının birçok yöntemi vardır. Bu yazıda sadece yaygın olarak kullanılanlar anlatılacaktır.







Makale İçeriği



Tarayıcı Sınıfının basit kullanımı

Aşağıdaki kod, kullanıcıdan bir cümle yazmasını ister ve ardından cümleyi görüntüler:



içe aktarmak java.util.Tarayıcı;

halka açık sınıfSınıf{
halka açık statik geçersizana( Sicim []argümanlar) {
Tarayıcı taramasıObj= yeniTarayıcı( sistem .içinde);
sistem .dışarı.println('Bir cümle yazın ve Enter'a basın:');

Sicim cümle=tarama nesnesiSonraki satır();
sistem .dışarı.println(cümle);

tarama nesnesikapat();
}
}

İlk satır, Tarayıcı sınıfını içe aktarır. Ana işlevde, ilk satır klavye için System.in nesnesini kullanarak bir tarayıcı nesnesi oluşturur. Tarayıcı nesnesi oluşturulur oluşturulmaz girdi beklemeye başlar. Sonraki satır, kullanıcıdan bir cümle yazmasını isteyen bir ifade yazdırır. Kodu takip eden satır, kullanıcının Enter tuşuna bastıktan sonra cümlesini okumak için tarayıcı nesnesinin nextLine() yöntemini kullanır. Kodda sonraki satır, terminal penceresindeki cümleyi yeniden yazdırır. Son satır tarayıcı nesnesini kapatır.





Giriş Satırını Değerlere Tükürmek

Aşağıdaki kod, boşluğu sınırlayıcı olarak kullanarak giriş satırını sözcüklere (belirteçlere) böler:

içe aktarmak java.util.Tarayıcı;

halka açık sınıfSınıf{
halka açık statik geçersizana( Sicim []argümanlar) {
Tarayıcı taramasıObj= yeniTarayıcı( sistem .içinde);
sistem .dışarı.println('Bir jeton satırı yazın ve Enter'a basın:');

süre(tarama nesnesiSonraki()){
sistem .dışarı.println(tarama nesnesisonraki());
}

tarama nesnesikapat();
}
}

hasNext() ve next(), tarayıcı nesnesinin diğer iki yöntemidir. Tarayıcı nesnesi bir satırı okuduğunda, onu tutar. next() sonraki simgeye (kelime) erişir. hasNext() henüz erişilmemiş başka bir belirteç varsa true değerini döndürür.



Ne yazık ki, kullanıcının yine de bu kodla bölme ve yeniden görüntüleme için giriş yapması bekleniyor. Tüm bunları bitirmek için Ctrl+z tuşlarına basın ve komut istemine geri dönmelisiniz.

Yukarıdaki kodda, sınırlayıcı boşluktaki belirteçleri ayırır. Başka bir karakter kullanılabilir. Aşağıdaki kod virgül kullanır. Kodu test ederseniz, döngüyü sonlandırmak için Ctrl+z tuşlarına basmayı unutmayın.

içe aktarmak java.util.Tarayıcı;

halka açık sınıfSınıf{
halka açık statik geçersizana( Sicim []argümanlar) {
Tarayıcı taramasıObj= yeniTarayıcı( sistem .içinde);
sistem .dışarı.println('Bir jeton satırı yazın ve Enter'a basın:');

tarama nesnesikullanımSınırlayıcı(',');

süre(tarama nesnesiSonraki()){
sistem .dışarı.println(tarama nesnesisonraki());
}

tarama nesnesikapat();
}
}

Kodu test ettiyseniz, belirteçlerdeki boşlukların belirteçlerin (çıktı) bir parçası olarak dahil edildiğini fark etmişsinizdir. ifade, scanObj.useDelimiter(,); giriş satırı okunduktan sonra yazılır; virgül, sınırlayıcı yapan şeydir.

İlkel Veri Türlerini Okuma ve Doğrulama

nextBoolean() yöntemi

Aşağıdaki kodda, kullanıcının tırnak işaretleri olmadan doğru veya yanlış yazması ve ardından kullanıcı evet veya hayır gibi başka bir şey yazarsa Enter tuşuna basması beklenir, bir hata mesajı görüntülenecektir.

içe aktarmak java.util.Tarayıcı;

halka açık sınıfSınıf{
halka açık statik geçersizana( Sicim []argümanlar) {
sistem .dışarı.Yazdır('24 yaşından büyük müsün? ');
Tarayıcı taramasıObj= yeniTarayıcı( sistem .içinde);

boolebl=tarama nesnesisonrakiBoole();
Eğer (bl== NS) {
sistem .dışarı.println('24 yaşından büyüksün');
}
Başka Eğer (bl== YANLIŞ) {
sistem .dışarı.println('24 yaşın altındasın');
}

tarama nesnesikapat();
}
}

Java, girdi tam olarak doğru veya yanlış olmadığı sürece bir hata mesajı vereceğinden, else yerine else if kullanılmıştır.

print ve println yöntemleri arasındaki fark, print'in mevcut satırdaki girdiyi beklemesi, println'in ise sonraki satırdaki girdiyi beklemesidir.

nextByte() yöntemi

ASCII karakter seti ile bir karakter bir bayttır. Ancak, bazı Doğu karakter kümelerinde bir karakter birden fazla bayttan oluşabilir. Karakter kümesinden bağımsız olarak nextByte yöntemi, girdinin sonraki baytını okur ve doğrular. Bu amaçla aşağıdaki kod kullanılabilir:

içe aktarmak java.util.Tarayıcı;

halka açık sınıfSınıf{
halka açık statik geçersizana( Sicim []argümanlar) {
sistem .dışarı.Yazdır('Numara giriniz<128, press Enter: ');
Tarayıcı taramasıObj= yeniTarayıcı( sistem .içinde);

baytbt=tarama nesnesisonrakiByte();
sistem .dışarı.println(bt);

tarama nesnesikapat();
}
}

Bu kod için 127'den büyük bir sayı veya bir alfabe karakteri girilirse bir hata mesajı verilir.

nextInt() Yöntemi

Giriş olarak bir sonraki tamsayı belirteci de doğrulanabilir ve kabul edilebilir. Aşağıdaki kod kullanılabilir:

içe aktarmak java.util.Tarayıcı;

halka açık sınıfSınıf{
halka açık statik geçersizana( Sicim []argümanlar) {
sistem .dışarı.Yazdır('Herhangi bir Tamsayı girin:');
Tarayıcı taramasıObj= yeniTarayıcı( sistem .içinde);

intbirde=tarama nesnesisonrakiInt();
sistem .dışarı.println(birde);

tarama nesnesikapat();
}
}

Baştaki veya sondaki boşluklar kaldırıldı. Bu kod için, 127'den büyük değerler de dahil olmak üzere herhangi bir tamsayı değeri kabul edilecektir. Bu nextXXX() yöntemleriyle doğrulama başarısız olduğunda bir hata mesajı verilir.

nextBigInteger() Yöntemi

Görünüşe göre yazılım mühendisleri yeni şeyler üretmeyi asla bırakmayacak. Büyük bir tamsayı, değeri bir tamsayıdan çok daha büyük olan bir tamsayıdır. Ancak Java ile tamsayı ile aynı şekilde okunabilir. Aşağıdaki kod bunu göstermektedir:

içe aktarmak java.util.Tarayıcı;
içe aktarmak java.math.BigInteger;

halka açık sınıfSınıf{
halka açık statik geçersizana( Sicim []argümanlar) {
sistem .dışarı.println('Büyük Tamsayı için herhangi bir Tamsayı girin:');
Tarayıcı taramasıObj= yeniTarayıcı( sistem .içinde);

BüyükTamsayı birde=tarama nesnesisonrakiBigInteger();
sistem .dışarı.println(birde);

tarama nesnesikapat();
}
}

import ifadesini not edin, import java.math.BigInteger;. Ayrıca, büyük tamsayı türünün küçük B harfiyle değil, büyük B harfiyle başladığını unutmayın.

nextFloat() Yöntemi

Giriş olarak bir sonraki kayan nokta simgesi de doğrulanabilir ve kabul edilebilir. Aşağıdaki kod kullanılabilir:

içe aktarmak java.util.Tarayıcı;

halka açık sınıfSınıf{
halka açık statik geçersizana( Sicim []argümanlar) {
sistem .dışarı.Yazdır('Herhangi bir Float girin:');
Tarayıcı taramasıObj= yeniTarayıcı( sistem .içinde);

batmadan yüzmekbirde=tarama nesnesisonrakiŞamandıra();
sistem .dışarı.println(birde);

tarama nesnesikapat();
}
}

Float sayı örneği 23.456'dır. Baştaki veya sondaki boşluklar kaldırıldı.

sonrakiÇift()

Giriş olarak bir sonraki çift jeton da doğrulanabilir ve kabul edilebilir. Aşağıdaki kod kullanılabilir:

içe aktarmak java.util.Tarayıcı;

halka açık sınıfSınıf{
halka açık statik geçersizana( Sicim []argümanlar) {
sistem .dışarı.Yazdır('Herhangi bir Double girin:');
Tarayıcı taramasıObj= yeniTarayıcı( sistem .içinde);

çiftbirde=tarama nesnesisonrakiÇift();
sistem .dışarı.println(birde);

tarama nesnesikapat();
}
}

Çift sayı örneği 23.456'dır. Çift sayı, daha az hata payına sahip olduğu için kayan sayıdan farklıdır. Baştaki veya sondaki boşluklar kaldırıldı.

nextLine() yöntemi

nextLine() yöntemi bir dize içindir. Dize, Enter'a bastıktan sonra klavyeden gelen giriş satırıysa, yeni satır karakteri ' ' olabilir. Aşağıdaki kod kullanılabilir:

içe aktarmak java.util.Tarayıcı;

halka açık sınıfSınıf{
halka açık statik geçersizana( Sicim []argümanlar) {
sistem .dışarı.println('Şu olan bir satır girin\n : ');
Tarayıcı taramasıObj= yeniTarayıcı( sistem .içinde);

Sicim P=tarama nesnesiSonraki satır();
sistem .dışarı.println(P);

tarama nesnesikapat();
}
}

Dize türünün küçük harf s ile değil, büyük harf S ile başladığına dikkat edin.

nextLine(), hasNext() ve next() yöntemleri bu makalede daha önce kullanılmıştır. Tarayıcının başka yöntemleri ve diğer ilkel veri yöntemleri vardır - daha sonra bakın.

Bir Değişkene Girdi Atama

Aşağıdaki kodda gösterildiği gibi, girdi bir değişkene atanabilir:

içe aktarmak java.util.Tarayıcı;

halka açık sınıfSınıf{
halka açık statik geçersizana( Sicim []argümanlar) {
Tarayıcı taramasıObj= yeniTarayıcı( sistem .içinde);

sistem .dışarı.Yazdır('İsim giriniz: ');
Sicim isim=tarama nesnesiSonraki satır();

sistem .dışarı.Yazdır('Yaşı girin:');
intyaş=tarama nesnesisonrakiInt();

sistem .dışarı.Yazdır('Maaş girin:');
çiftaylık maaş=tarama nesnesisonrakiÇift();

sistem .dışarı.println('İsim: ' +isim+ ', Yaş: ' +yaş+ ', Aylık maaş: ' +aylık maaş);

tarama nesnesikapat();
}
}

Çözüm

Java'daki Tarayıcı, java.util paketindeki bir sınıftır. Bu sınıf, bir diziden, klavyeden, dosyadan veya ağ soketinden girdi okumayı amaçlar. Bu makale temel olarak klavyeden girdileri okumaya ve sonucu terminal penceresinde görüntülemeye odaklanmıştır. Dize, dosya veya ağ kanalından gelen girdileri okumak için benzer fikirler kullanılabilir.

Klavye girişi satırının tamamını okumak için nextLine() yöntemini kullanın. Bir dize olarak satır, hasNext() ve next() yöntemleri ve while döngüsü kullanılarak belirteçlere bölünebilir. Bölme için varsayılan sınırlayıcı boşluktur, ancak programcı başka bir sınırlayıcı seçebilir. Gerekirse while döngüsünü durdurmak için Ctrl+z yapmayı unutmayın. Baştaki ve sondaki boşlukları kaldırmak, bu makalede ele alınmayan diğer şemalar kullanılarak yapılabilir. Belirteçlerin doğrulanması, bu makalede ele alınmayan diğer şemalar kullanılarak da yapılabilir.

İlkel değerler nextBoolean(), nextByte(), nextInt(), vb. kullanılarak okunabilir. Bu nextXXX() yöntemleri doğrulama yapar ve ayrıca baştaki ve sondaki boşlukları kaldırır.

Java Tarayıcının daha birçok yöntemi vardır. Ancak Tarayıcının temel kullanımı bu makalede anlatılmıştır. Bir belirteç seçimi aslında düzenli ifade teknikleri kullanılarak yapılır. Düzenli ifade tekniklerinin kullanımı başka bir zaman için tartışma konusudur.