ஜாவாவில் ஸ்கேனரை எவ்வாறு பயன்படுத்துவது

How Use Scanner Java



ஜாவாவில் உள்ள ஸ்கேனர் என்பது java.util தொகுப்பில் உள்ள ஒரு வகுப்பாகும். இந்த வகுப்பு ஒரு சரம், விசைப்பலகை, கோப்பு அல்லது நெட்வொர்க் சாக்கெட் ஆகியவற்றிலிருந்து உள்ளீட்டைப் படிப்பதை நோக்கமாகக் கொண்டுள்ளது. இந்த கட்டுரை விசைப்பலகையில் இருந்து உள்ளீட்டைப் படித்து முடிவை முனைய சாளரத்தில் காண்பிப்பதில் மட்டுமே கவனம் செலுத்துகிறது. கோப்பு அல்லது நெட்வொர்க் சேனலில் இருந்து உள்ளீட்டைப் படிக்க இதே போன்ற யோசனைகள் பயன்படுத்தப்படலாம். ஸ்கேனர் முனைய சாளரத்தில் அச்சிடாது. முனையத்தில் அச்சிட, System.out பொருளைப் பயன்படுத்தவும். கீழே விளக்கப்பட்டுள்ளபடி முனையத்தில் அச்சிட இந்தப் பொருளைப் பயன்படுத்துவது எளிது.

ஸ்கேனர் வகுப்பைப் பயன்படுத்த, அதை முதலில் இறக்குமதி செய்ய வேண்டும். அதன் பிறகு, ஒரு பொருளை அதிலிருந்து உடனடியாக நிறுவ வேண்டும். ஸ்கேனர் பொருளைப் பயன்படுத்திய பிறகு, அதை மூட வேண்டும். விசைப்பலகையைக் குறிக்கும் உள்ளீட்டு ஸ்ட்ரீம் பொருள் System.in ஆகும். ஸ்கேனரில் பல முறைகள் உள்ளன. இந்த கட்டுரையில் பொதுவாகப் பயன்படுத்தப்படும்வை மட்டுமே விளக்கப்படும்.







கட்டுரை உள்ளடக்கம்



ஸ்கேனர் வகுப்பின் எளிய பயன்பாடு

பின்வரும் குறியீடு பயனரை ஒரு வாக்கியத்தில் தட்டச்சு செய்யச் சொல்கிறது, பின்னர் அது வாக்கியத்தைக் காட்டுகிறது:



இறக்குமதி java.util.Scanner;

பொது வர்க்கம்வகுப்பு{
பொது நிலையான வெற்றிடம்முக்கிய( லேசான கயிறு []வாதிடுகிறார்) {
ஸ்கேனர் ஸ்கேன்ஒப்ஜ்= புதியஸ்கேனர்( அமைப்பு .இல்);
அமைப்பு .வெளியே.println(ஒரு வாக்கியத்தைத் தட்டச்சு செய்து Enter ஐ அழுத்தவும்: ');

லேசான கயிறு வாக்கியம்=scanObj.அடுத்த வரி();
அமைப்பு .வெளியே.println(வாக்கியம்);

scanObj.நெருக்கமான();
}
}

முதல் வரி ஸ்கேனர் வகுப்பை இறக்குமதி செய்கிறது. முக்கிய செயல்பாட்டில், முதல் வரி விசைப்பலகைக்கு System.in பொருளைப் பயன்படுத்தி ஒரு ஸ்கேனர் பொருளை உருவாக்குகிறது. ஸ்கேனர் பொருள் உருவாக்கப்பட்டவுடன், அது உள்ளீட்டிற்காக காத்திருக்கத் தொடங்குகிறது. அடுத்த வரி ஒரு அறிக்கையை அச்சிடுகிறது, பயனரை ஒரு வாக்கியத்தில் தட்டச்சு செய்யச் சொல்கிறது. குறியீட்டைப் பின்பற்றும் கோடு, பயனரின் வாக்கியத்தைப் படிக்க, ஸ்கேனர் பொருளின் அடுத்த வரி () முறையைப் பயன்படுத்துகிறது. குறியீட்டில் உள்ள வரி, முனைய சாளரத்தில் வாக்கியத்தை மறுபதிப்பு செய்கிறது. கடைசி வரி ஸ்கேனர் பொருளை மூடுகிறது.





உள்ளீட்டு வரியை மதிப்புகளில் துப்புதல்

பின்வரும் குறியீடு உள்ளீட்டு வரியை சொற்களாக (டோக்கன்கள்) பிரிக்கிறது, இடத்தை இடைவெளியாகப் பயன்படுத்துகிறது:

இறக்குமதி java.util.Scanner;

பொது வர்க்கம்வகுப்பு{
பொது நிலையான வெற்றிடம்முக்கிய( லேசான கயிறு []வாதிடுகிறார்) {
ஸ்கேனர் ஸ்கேன்ஒப்ஜ்= புதியஸ்கேனர்( அமைப்பு .இல்);
அமைப்பு .வெளியே.println(டோக்கன்களின் வரிசையை தட்டச்சு செய்து Enter ஐ அழுத்தவும்: ');

போது(scanObj.அடுத்தது உள்ளது()){
அமைப்பு .வெளியே.println(scanObj.அடுத்தது());
}

scanObj.நெருக்கமான();
}
}

hasNext () மற்றும் next () ஆகியவை ஸ்கேனர் பொருளின் வேறு இரண்டு முறைகள். ஸ்கேனர் பொருள் ஒரு வரியைப் படிக்கும்போது, ​​அதை வைத்திருக்கிறது. அடுத்தது () அடுத்த டோக்கனை (வார்த்தை) அணுகும். hasNext () இதுவரை அணுகப்படாத வேறு எந்த டோக்கனும் இருந்தால் அது உண்மையாக இருக்கும்.



துரதிர்ஷ்டவசமாக, பயனர் இந்த குறியீட்டை பிரித்து மீண்டும் காண்பிப்பதற்கான உள்ளீட்டை தட்டச்சு செய்வார் என்று எதிர்பார்க்கப்படுகிறது. அதையெல்லாம் முடிக்க, Ctrl+z ஐ அழுத்தவும், நீங்கள் கட்டளை வரியில் திரும்ப வேண்டும்.

மேலே உள்ள குறியீட்டில், வரையறை இடத்தில் உள்ள டோக்கன்களை பிரிக்கிறது. மற்றொரு எழுத்து பயன்படுத்தப்படலாம். பின்வரும் குறியீடு கமாவைப் பயன்படுத்துகிறது. குறியீட்டைச் சோதித்தால் சுழற்சியை முடிக்க Ctrl+z ஐ அழுத்த மறக்காதீர்கள்.

இறக்குமதி java.util.Scanner;

பொது வர்க்கம்வகுப்பு{
பொது நிலையான வெற்றிடம்முக்கிய( லேசான கயிறு []வாதிடுகிறார்) {
ஸ்கேனர் ஸ்கேன்ஒப்ஜ்= புதியஸ்கேனர்( அமைப்பு .இல்);
அமைப்பு .வெளியே.println(டோக்கன்களின் வரிசையை தட்டச்சு செய்து Enter ஐ அழுத்தவும்: ');

scanObj.டெலிமிட்டர் பயன்படுத்தவும்(',');

போது(scanObj.அடுத்தது உள்ளது()){
அமைப்பு .வெளியே.println(scanObj.அடுத்தது());
}

scanObj.நெருக்கமான();
}
}

நீங்கள் குறியீட்டைச் சோதித்திருந்தால், டோக்கன்களில் (வெளியீடு) ஒரு பகுதியாக டோக்கன்களில் உள்ள இடைவெளிகள் சேர்க்கப்பட்டிருப்பதைக் கவனித்திருப்பீர்கள். வெளிப்பாடு, scanObj.useDelimiter (,); உள்ளீட்டு வரி படித்த பிறகு தட்டச்சு செய்யப்பட்டது; இது கமாவை உருவாக்குகிறது.

பழமையான தரவு வகைகளைப் படித்தல் மற்றும் சரிபார்த்தல்

அடுத்த பூலியன் () முறை

பின்வரும் குறியீட்டில், பயனர் மேற்கோள்கள் இல்லாமல் உண்மை அல்லது பொய் என தட்டச்சு செய்வார், பின்னர் பயனர் ஆம் அல்லது இல்லை என ஏதேனும் தட்டச்சு செய்தால் Enter விசையை அழுத்தவும், பிழை செய்தி காட்டப்படும்.

இறக்குமதி java.util.Scanner;

பொது வர்க்கம்வகுப்பு{
பொது நிலையான வெற்றிடம்முக்கிய( லேசான கயிறு []வாதிடுகிறார்) {
அமைப்பு .வெளியே.அச்சு('நீங்கள் 24 க்கு மேல் இருக்கிறீர்களா? ');
ஸ்கேனர் ஸ்கேன்ஒப்ஜ்= புதியஸ்கேனர்( அமைப்பு .இல்);

பூலியன்bl=scanObj.அடுத்த பூலியன்();
என்றால் (bl== உண்மை) {
அமைப்பு .வெளியே.println('நீங்கள் 24 வயதுக்கு மேற்பட்டவர்கள்');
}
வேறு என்றால் (bl== பொய்) {
அமைப்பு .வெளியே.println('நீங்கள் 24 வயதிற்குட்பட்டவர்கள்');
}

scanObj.நெருக்கமான();
}
}

உள்ளீடு சரியாகவோ அல்லது தவறாகவோ இருக்கும் வரை ஜாவா ஒரு பிழை செய்தியை வெளியிடும் என்பதால், மற்றவற்றுக்கு பதிலாக மற்றவை பயன்படுத்தப்பட்டால்.

பிரிண்ட் மற்றும் பிரிண்ட்எல்என் ஆகிய முறைகளுக்கிடையேயான வித்தியாசம் என்னவென்றால், பிரிண்ட் தற்போதைய வரியில் உள்ளீட்டை எதிர்பார்க்கிறது, அதே நேரத்தில் பிரிண்ட்லன் அடுத்த வரியில் உள்ளீட்டை எதிர்பார்க்கிறது.

அடுத்த பைட் () முறை

ASCII எழுத்து அமைப்போடு, ஒரு எழுத்து ஒரு பைட் ஆகும். இருப்பினும், சில கிழக்கு எழுத்து தொகுப்புகளுடன், ஒரு எழுத்து ஒன்றுக்கு மேற்பட்ட பைட்டுகளைக் கொண்டிருக்கலாம். எழுத்து அமைப்பிலிருந்து சுயாதீனமாக, அடுத்த பைட் முறை உள்ளீட்டின் அடுத்த பைட்டைப் படித்து சரிபார்க்கிறது. இந்த நோக்கத்திற்காக பின்வரும் குறியீட்டைப் பயன்படுத்தலாம்:

இறக்குமதி java.util.Scanner;

பொது வர்க்கம்வகுப்பு{
பொது நிலையான வெற்றிடம்முக்கிய( லேசான கயிறு []வாதிடுகிறார்) {
அமைப்பு .வெளியே.அச்சு(வகை எண்<128, press Enter: ');
ஸ்கேனர் ஸ்கேன்ஒப்ஜ்= புதியஸ்கேனர்( அமைப்பு .இல்);

பைட்பிடி=scanObj.அடுத்த பைட்();
அமைப்பு .வெளியே.println(பிடி);

scanObj.நெருக்கமான();
}
}

இந்த குறியீட்டில் 127 ஐ விட அதிக எண் அல்லது எழுத்துக்கள் உள்ளிடப்பட்டால், பிழை செய்தி வழங்கப்படும்.

அடுத்தது () முறை

உள்ளீடாக அடுத்த முழு எண் டோக்கனையும் சரிபார்க்கலாம் மற்றும் ஏற்கலாம். பின்வரும் குறியீட்டைப் பயன்படுத்தலாம்:

இறக்குமதி java.util.Scanner;

பொது வர்க்கம்வகுப்பு{
பொது நிலையான வெற்றிடம்முக்கிய( லேசான கயிறு []வாதிடுகிறார்) {
அமைப்பு .வெளியே.அச்சு('எந்த முழு எண்ணையும் உள்ளிடவும்:');
ஸ்கேனர் ஸ்கேன்ஒப்ஜ்= புதியஸ்கேனர்( அமைப்பு .இல்);

intஒன்றின் மீது=scanObj.அடுத்தது();
அமைப்பு .வெளியே.println(ஒன்றின் மீது);

scanObj.நெருக்கமான();
}
}

முன்னணி அல்லது பின்தங்கிய இடங்கள் அகற்றப்பட்டன. இந்த குறியீட்டிற்கு, 127 ஐ விட அதிகமான மதிப்புகள் உட்பட எந்த முழு எண்ணும் ஏற்றுக்கொள்ளப்படும். இந்த அடுத்த எக்ஸ்எக்ஸ்எக்ஸ் () முறைகளில், சரிபார்ப்பு தோல்வியுற்றவுடன், ஒரு பிழை செய்தி வழங்கப்படுகிறது.

nextBigInteger () முறை

மென்பொருள் பொறியாளர்கள் புதிய விஷயங்களைக் கொண்டு வருவதை நிறுத்த மாட்டார்கள் என்று தெரிகிறது. ஒரு பெரிய முழு எண் ஒரு முழு எண்ணை விட அதன் மதிப்பு மிகவும் பெரியது. இருப்பினும், ஜாவாவுடன், அதை முழு எண்ணைப் போலவே படிக்க முடியும். பின்வரும் குறியீடு இதை விளக்குகிறது:

இறக்குமதி java.util.Scanner;
இறக்குமதி java.math.BigInteger;

பொது வர்க்கம்வகுப்பு{
பொது நிலையான வெற்றிடம்முக்கிய( லேசான கயிறு []வாதிடுகிறார்) {
அமைப்பு .வெளியே.println('பெரிய முழு எண்ணுக்கு எந்த முழு எண்ணையும் உள்ளிடவும்:');
ஸ்கேனர் ஸ்கேன்ஒப்ஜ்= புதியஸ்கேனர்( அமைப்பு .இல்);

BigInteger ஒன்றின் மீது=scanObj.அடுத்த பிக்இன்டெஜர்();
அமைப்பு .வெளியே.println(ஒன்றின் மீது);

scanObj.நெருக்கமான();
}
}

இறக்குமதி அறிக்கை, இறக்குமதி java.math.BigInteger; மேலும், பெரிய முழு எண் வகை பெரிய எழுத்து B உடன் தொடங்குகிறது, சிறிய எழுத்து b அல்ல என்பதை நினைவில் கொள்க.

அடுத்த மிதவை () முறை

உள்ளீடாக அடுத்த மிதவை டோக்கனையும் சரிபார்க்கலாம் மற்றும் ஏற்கலாம். பின்வரும் குறியீட்டைப் பயன்படுத்தலாம்:

இறக்குமதி java.util.Scanner;

பொது வர்க்கம்வகுப்பு{
பொது நிலையான வெற்றிடம்முக்கிய( லேசான கயிறு []வாதிடுகிறார்) {
அமைப்பு .வெளியே.அச்சு('எந்த மிதவை உள்ளிடவும்:');
ஸ்கேனர் ஸ்கேன்ஒப்ஜ்= புதியஸ்கேனர்( அமைப்பு .இல்);

மிதக்கஒன்றின் மீது=scanObj.அடுத்த மிதவை();
அமைப்பு .வெளியே.println(ஒன்றின் மீது);

scanObj.நெருக்கமான();
}
}

ஒரு மிதவை எண்ணின் எடுத்துக்காட்டு 23.456. முன்னணி அல்லது பின்தங்கிய இடங்கள் அகற்றப்பட்டன.

அடுத்த இரட்டை ()

உள்ளீடாக அடுத்த இரட்டை டோக்கனையும் சரிபார்க்கலாம் மற்றும் ஏற்கலாம். பின்வரும் குறியீட்டைப் பயன்படுத்தலாம்:

இறக்குமதி java.util.Scanner;

பொது வர்க்கம்வகுப்பு{
பொது நிலையான வெற்றிடம்முக்கிய( லேசான கயிறு []வாதிடுகிறார்) {
அமைப்பு .வெளியே.அச்சு('எந்த இரட்டை உள்ளிடவும்:');
ஸ்கேனர் ஸ்கேன்ஒப்ஜ்= புதியஸ்கேனர்( அமைப்பு .இல்);

இரட்டைஒன்றின் மீது=scanObj.அடுத்த இரட்டை();
அமைப்பு .வெளியே.println(ஒன்றின் மீது);

scanObj.நெருக்கமான();
}
}

இரட்டை எண்ணின் எடுத்துக்காட்டு 23.456. மிதவையிலிருந்து இரட்டை எண் வேறுபட்டது, ஏனெனில் இது குறைவான விளிம்பு பிழையைக் கொண்டுள்ளது. முன்னணி அல்லது பின்தங்கிய இடங்கள் அகற்றப்பட்டன.

அடுத்த வரி () முறை

அடுத்த வரி () முறை ஒரு சரம். Enter ஐ அழுத்திய பிறகு சரம் விசைப்பலகையிலிருந்து உள்ளீட்டு வரியாக இருந்தால், அது ‘ n’ என்ற புதிய வரி எழுத்தைக் கொண்டிருக்கலாம். பின்வரும் குறியீட்டைப் பயன்படுத்தலாம்:

இறக்குமதி java.util.Scanner;

பொது வர்க்கம்வகுப்பு{
பொது நிலையான வெற்றிடம்முக்கிய( லேசான கயிறு []வாதிடுகிறார்) {
அமைப்பு .வெளியே.println(ஒரு வரியை உள்ளிடவும்\n: ');
ஸ்கேனர் ஸ்கேன்ஒப்ஜ்= புதியஸ்கேனர்( அமைப்பு .இல்);

லேசான கயிறு=scanObj.அடுத்த வரி();
அமைப்பு .வெளியே.println();

scanObj.நெருக்கமான();
}
}

சரம் வகை பெரிய எழுத்து S உடன் தொடங்குகிறது என்பதை கவனிக்கவும், சிறிய எழுத்து கள் அல்ல.

அடுத்த வரி (), hasNext () மற்றும் அடுத்த () முறைகள் முன்னர் இந்த கட்டுரையில் பயன்படுத்தப்பட்டன. ஸ்கேனரில் பிற முறைகள் மற்றும் பிற பழமையான தரவு முறைகள் உள்ளன - பின்னர் பார்க்கவும்.

ஒரு மாறிக்கு உள்ளீட்டை ஒதுக்குதல்

பின்வரும் குறியீடு காண்பிப்பது போல, உள்ளீட்டை ஒரு மாறிக்கு ஒதுக்கலாம்:

இறக்குமதி java.util.Scanner;

பொது வர்க்கம்வகுப்பு{
பொது நிலையான வெற்றிடம்முக்கிய( லேசான கயிறு []வாதிடுகிறார்) {
ஸ்கேனர் ஸ்கேன்ஒப்ஜ்= புதியஸ்கேனர்( அமைப்பு .இல்);

அமைப்பு .வெளியே.அச்சு('பெயரை உள்ளிடுக: ');
லேசான கயிறு பெயர்=scanObj.அடுத்த வரி();

அமைப்பு .வெளியே.அச்சு('வயதை உள்ளிடவும்:');
intவயது=scanObj.அடுத்தது();

அமைப்பு .வெளியே.அச்சு(சம்பளத்தை உள்ளிடவும்: ');
இரட்டைசம்பளம்=scanObj.அடுத்த இரட்டை();

அமைப்பு .வெளியே.println('பெயர்:' +பெயர்+ ', வயது: ' +வயது+ 'சம்பளம்:' +சம்பளம்);

scanObj.நெருக்கமான();
}
}

முடிவுரை

ஜாவாவில் உள்ள ஸ்கேனர் என்பது java.util தொகுப்பில் உள்ள ஒரு வகுப்பாகும். இந்த வகுப்பு ஒரு சரம், விசைப்பலகை, கோப்பு அல்லது நெட்வொர்க் சாக்கெட் ஆகியவற்றிலிருந்து உள்ளீட்டைப் படிப்பதை நோக்கமாகக் கொண்டுள்ளது. இந்த கட்டுரை முக்கியமாக விசைப்பலகையில் இருந்து உள்ளீட்டைப் படித்து முடிவை முனைய சாளரத்தில் காண்பிப்பதில் கவனம் செலுத்தியுள்ளது. சரம், கோப்பு அல்லது நெட்வொர்க் சேனலில் இருந்து உள்ளீட்டைப் படிக்க இதே போன்ற யோசனைகள் பயன்படுத்தப்படலாம்.

விசைப்பலகை உள்ளீட்டின் முழு வரியையும் படிக்க, அடுத்த வரி () முறையைப் பயன்படுத்தவும். வரியை ஒரு சரமாக டோக்கன்களாகப் பிரிக்கலாம், hasNext () மற்றும் அடுத்த () முறைகள் மற்றும் அதே நேரத்தில் வளையத்தைப் பயன்படுத்தி. பிரிப்பதற்கான இயல்புநிலை வரையறை இடைவெளி, ஆனால் புரோகிராமர் வேறு சில எல்லைகளைத் தேர்வு செய்யலாம். தேவைப்பட்டால், சுழற்சியை நிறுத்த Ctrl+z செய்ய மறக்காதீர்கள். இந்த கட்டுரையில் குறிப்பிடப்படாத பிற திட்டங்களைப் பயன்படுத்தி முன்னணி மற்றும் பின்தங்கிய இடங்களை அகற்றலாம். இந்த கட்டுரையில் குறிப்பிடப்படாத பிற திட்டங்களைப் பயன்படுத்தி டோக்கன்களின் சரிபார்ப்பையும் செய்யலாம்.

முதன்மையான மதிப்புகளை அடுத்த பூலியன் (), நெக்ஸ்ட் பைட் (), நெக்ஸ்ட்இன்ட் () போன்றவற்றைப் பயன்படுத்தி படிக்கலாம்.

ஜாவா ஸ்கேனருக்கு இன்னும் பல முறைகள் உள்ளன. இருப்பினும், ஸ்கேனரின் அடிப்படை பயன்பாடு இந்த கட்டுரையில் விளக்கப்பட்டுள்ளது. டோக்கனின் தேர்வு உண்மையில் வழக்கமான வெளிப்பாடு நுட்பங்களைப் பயன்படுத்தி செய்யப்படுகிறது. வழக்கமான வெளிப்பாட்டு நுட்பங்களைப் பயன்படுத்துவது விவாதம், வேறு சில நேரம்.