StringUtils அறிமுகம்

StringUtils அதிகம் பயன்படுத்தப்படும் Apache Commons வகுப்பு. டெவலப்பர்கள் கொதிகலன்களை எழுதுவதைத் தவிர்க்க உதவும் பல்வேறு பயன்பாடுகள் மற்றும் முறைகளை இது கொண்டுள்ளது அல்லது அடிப்படை செயல்பாடுகளுக்கு வெறுமனே பயன்படுத்த முடியாத குறியீடு.

StringUtils வகுப்பில் உள்ள பல முறைகள் அவற்றின் java.lang.ஸ்ட்ரிங் சமமானவைகளைக் கொண்டுள்ளன , ஆனால், java.lang.String முறைகளைப் போலல்லாமல் , பூஜ்ய-பாதுகாப்பானவை. இதன் பொருள் NullPointerException மிகவும் எதிர்பாராத தருணத்தில் வீசப்படுவதில்லை .

அப்பாச்சி காமன்ஸ் பல முறைகளைக் கொண்டுள்ளது, மேலும் பொதுவாகப் பயன்படுத்தப்படும் சிலவற்றைப் பார்ப்போம்.

StringUtils முறைகளின் பட்டியல்:

காலியாக உள்ளது() ஒரு சரம் காலியாக உள்ளதா எனச் சரிபார்க்கிறது
சமம்() சரங்களை ஒப்பிடுகிறது
ஒப்பிடு() சரங்களை ஒப்பிடுகிறது
indexOf() ஒரு சரத்தில் ஒரு துணைச்சரத்தைக் கண்டறிதல்
LastIndexOf() ஒரு சரத்தில் ஒரு துணைச்சரத்தைக் கண்டறிதல்
கொண்டுள்ளது() சரத்தில் சப்ஸ்ட்ரிங் உள்ளதா எனச் சரிபார்க்கிறது
புறக்கணிப்பு () கொண்டுள்ளது கேஸைப் புறக்கணித்து, சரத்தில் சப்ஸ்ட்ரிங் ஏற்பட்டுள்ளதா என்பதைச் சரிபார்க்கிறது
எதையும் () கொண்டுள்ளது ஒரு சரத்தில் எங்காவது சப்ஸ்ட்ரிங் உள்ளதா எனச் சரிபார்க்கிறது
எதுவும் இல்லை() ஒரு சரத்தில் எங்காவது சப்ஸ்ட்ரிங் உள்ளதா எனச் சரிபார்க்கிறது
கொண்டுள்ளது மட்டும்() சரத்தில் சப்ஸ்ட்ரிங் உள்ளதா எனச் சரிபார்க்கிறது
சப்ஸ்ட்ரிங்() சப்ஸ்ட்ரிங் பெறுகிறது
பிளவு() ஒரு சரத்தை துணை சரங்களாகப் பிரித்தல்
சேர () துணை சரங்களை இணைக்கவும்
அகற்று() துணை சரத்தை அகற்றுதல்
மாற்று() துணை சரத்தை மாற்றவும்
கவுண்ட் மேட்ச்கள்() போட்டிகளின் எண்ணிக்கையை எண்ணுதல்

StringUtils.isEmpty() மற்றும் StringUtils.isBlank()

ஒரு சரத்தில் ஏதேனும் உரை உள்ளதா என்பதைச் சரிபார்க்க இரண்டு முறைகளும் பயன்படுத்தப்படுகின்றன. சரம் உண்மையில் காலியாக இருந்தால் அவை உண்மையாக இருக்கும். கூடுதலாக, சரத்தில் இடைவெளிகள் மட்டுமே இருந்தால், isBlank() உண்மையும் திரும்பும் .

அவற்றின் சொந்த தலைகீழ் முறைகளும் உள்ளன: isNotEmpty() மற்றும் isNotBlank() .

isEmpty() ஐ அதன் java.lang.String.isEmpty() உடன் எப்படி பயன்படுத்தலாம் என்பதை பார்க்கலாம் , அத்துடன் isBlank() :

String nullValue = null;
String emptyValue = "";
String blankValue = "\n \t   \n";

if(StringUtils.isEmpty(emptyValue)) {
   System.out.println("emptyValue is emptyValue");
}

if(StringUtils.isBlank(blankValue)) {
   System.out.println("blankValue is blankValue");
}

if(!nullValue.isEmpty()) {
   System.out.println("nullString isn't null");
}

இங்கே சரம் வகை மூன்று மாறிகள் உள்ளன . ஒன்று பூஜ்யமாக இல்லை , இரண்டாவது பூஜ்யமாக இல்லை ஆனால் உள்ளடக்கம் இல்லை (வெற்று சரம்), மூன்றாவது காலியாக இல்லை ஆனால் வெற்று முடிவை அச்சிடும்.

இந்தக் குறியீட்டை இயக்குவதால் பின்வருபவை:

emptyValue is emptyValue
blankValue is blankValue
Exception in thread "main" java.lang.NullPointerException

java.lang. String இல் கட்டமைக்கப்பட்ட isEmpty() முறை பூஜ்ய பாதுகாப்பானது அல்ல . நீங்கள் அதை காலியாக உள்ளதா என்பதைச் சரிபார்க்க முயற்சித்தால், நீங்கள் எளிதாக NullPointerExceptionஐப் பெறுவீர்கள் , ஏனெனில் நீங்கள் முறையை பூஜ்ய குறிப்பில் அழைப்பீர்கள் . குறிப்பு பூஜ்யமா என்பதை முன்கூட்டியே சரிபார்க்க வேண்டியது அவசியம்:

String nullValue = null;
String emptyValue = "";
String blankValue = "\n \t   \n";

if(StringUtils.isEmpty(emptyValue)) {
   System.out.println("emptyValue is emptyValue");
}

if(StringUtils.isBlank(blankValue)) {
   System.out.println("blankValue is blankValue");
}

if(nullValue != null && !nullValue.isEmpty()) {
   System.out.println("nullString isn't null");
}

இப்போது இதன் விளைவாக:

emptyValue is emptyValue
blankValue is blankValue

இந்த முறைகளை நாம் சோதித்தால்nullString:

String nullValue = null;

if(StringUtils.isEmpty(nullValue)) {
   System.out.println("nullValue is emptyValue");
}

if(StringUtils.isBlank(nullValue)) {
   System.out.println("nullValue is blankValue");
}

பின்னர் நாம் பெறுகிறோம்:

nullValue is emptyValue
nullValue is blankValue

StringUtils முறைகள் பூஜ்ய பாதுகாப்பானவை மற்றும் அவை பூஜ்யமாக அனுப்பப்பட்டாலும் எதிர்பார்த்த முடிவைத் தரும் .

StringUtils.equals()

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

இது எவ்வாறு செயல்படுகிறது என்பதைப் பார்ப்போம்:

System.out.println(StringUtils.equals(null, null));
System.out.println(StringUtils.equals(null, "some information"));
System.out.println(StringUtils.equals("some information", null));
System.out.println(StringUtils.equals("some information",  "some information"));
System.out.println(StringUtils.equals("some additional information", "some information"));

விளைவாக:

true
false
false
true
false

StringUtils இலிருந்து சமம்() முறையை java.lang.String.equals() உடன் ஒப்பிட :

String nullValue = null;

System.out.println(StringUtils.equals(nullValue, null));
System.out.println(StringUtils.equals(nullValue, "some information"));

System.out.println(nullValue.equals(null));
System.out.println(nullValue.equals("some information"));

இது உங்களை மீண்டும் வரவழைக்கிறது:

true
false
Exception in thread "main" java.lang.NullPointerException

மீண்டும், பூஜ்ய குறிப்பில் ஒரு முறையை அழைப்பது ஒரு NullPointerException இல் விளைகிறது , மேலும் குறிப்பு மாறி அதைப் பயன்படுத்துவதற்கு முன்பு பூஜ்யமாக உள்ளதா என்பதை நீங்கள் சரிபார்க்க வேண்டும் .

StringUtils.compare()

இந்த முறையின் அறிவிப்பு இதுபோல் தெரிகிறது:

public static int compare(final String str1, final String str2)

இந்த முறையானது , java.lang.String.compareTo() முறை செய்வது போல, இரண்டு சரங்களை அகராதியளவில் ஒப்பிடுகிறது , திரும்புகிறது:

  • 0 str1 str2 க்கு சமமாக இருந்தால் (அல்லது இரண்டும் பூஜ்யமானது)
  • str1 str2 ஐ விட குறைவாக இருந்தால் மதிப்பு 0 க்கும் குறைவாக இருக்கும்
  • str1 str2 ஐ விட அதிகமாக இருந்தால் மதிப்பு 0 ஐ விட அதிகமாகும்

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

System.out.println(StringUtils.compare(null, null));
System.out.println(StringUtils.compare(null , "codeGym"));
System.out.println(StringUtils.compare("codeGym", null));
System.out.println(StringUtils.compare("codeGym", "CODEGYM"));
System.out.println(StringUtils.compare("codeGym", "codeGym"));

நாங்கள் பெறுகிறோம்:

0
-1
1
32
0

குறிப்பு: பூஜ்ய மதிப்பு பூஜ்யமற்ற மதிப்பை விட குறைவாகக் கருதப்படுகிறது . இரண்டு பூஜ்ய மதிப்புகள் சமமாகக் கருதப்படுகின்றன.

ஒரு சரத்தில் மற்றொரு சப்ஸ்ட்ரிங் உள்ளதா எனச் சரிபார்க்கிறது

இதைச் செய்ய, StringUtils 5 முறைகளைக் கொண்டுள்ளது:

  • கொண்டுள்ளது()
  • புறக்கணிப்பு () கொண்டுள்ளது
  • எதையும் () கொண்டுள்ளது
  • எதுவும் இல்லை()
  • கொண்டுள்ளது மட்டும்()

தேடல் வரிசை வேறொரு வரிசையில் உள்ளதா இல்லையா என்பதைப் பொறுத்து, contains() முறை true அல்லது false என வழங்கும் .

அத்தகைய முறைக்கு null அனுப்பப்பட்டால் , அது தவறானதாகத் திரும்பும் . பூஜ்யமற்றது கடந்து சென்றால், முறையானது அனுப்பப்பட்ட பொருளின் மீது java.lang.String.indexOf(ஸ்ட்ரிங் str) என்று அழைக்கும் .

எடுத்துக்காட்டுகள்:

String value = "CodeGym is cool";

System.out.println(StringUtils.contains(null, "a"));
System.out.println(StringUtils.contains(value, "CodeGym"));
System.out.println(StringUtils.contains(value, "C++"));
System.out.println(StringUtils.contains(value, "codegym"));

இந்த முறை கேஸ் சென்சிடிவ் ஆகும், எனவே கடைசி அழைப்பும் தவறானதாகத் திரும்பும் :

false
true
false
false

முதல் வாதமாக அனுப்பப்பட்ட சரம் 2-N மதிப்புருக்களில் அனுப்பப்பட்ட சப்ஸ்ட்ரிங்க்களில் குறைந்தபட்சம் ஒன்றைக் கொண்டிருந்தால், containsAny() முறை true என வழங்கும் .

உதாரணமாக:

String value = "CodeGym is cool";
System.out.println(StringUtils.containsAny(value, "cool", "c00l", "bro", "hello"));

காண்பிக்கும்:

true

இந்த முறையும் கேஸ் சென்சிடிவ் ஆகும்.

எதுவும் இல்லை() முறையைக் கொண்டுள்ளது

பட்டியலிலிருந்து ஒரு குறிப்பிட்ட சரத்தில் எதுவும் இல்லை என்பதை நீங்கள் சரிபார்க்க வேண்டியிருக்கும் போது, ​​நீங்கள் containsNone() முறையைப் பயன்படுத்தலாம் . முதல் அளவுரு ஒரு சரம், மேலும் பின்வரும் அளவுருக்கள் இலக்கு மடுவில் இருக்கக் கூடாத சரங்களாகும்.

உதாரணமாக:

String s = "CodeGym is cool";
System.out.println(StringUtils.containsNone(s, 'g', 'a'));

கன்சோல் வெளியீடு:

false

துணை சரங்களுடன் வேலை செய்தல்

சப்ஸ்ட்ரிங்க்களுடன் பணிபுரிவது சரம் வகுப்பின் முறைகளுடன் பணிபுரிவதைப் போன்றது :

substring(String str, int start)
substring (String str, int start, int end)

இந்த முறைகள் string string இலிருந்து ஒரு துணைச் சரத்தை வழங்கும் . சரம் இரண்டு குறியீடுகளால் வழங்கப்படுகிறது: தொடக்கம் மற்றும் முடிவு . ஜாவாவில் வழக்கம் போல், வரம்பின் கடைசி எழுத்து எண்ட்-1 ஆகும் . இந்த முறைகளின் நன்மை என்ன?

அத்தகைய முறைக்கு நீங்கள் பூஜ்யத்தை அனுப்பினால் , அது விதிவிலக்கை எறிவதற்குப் பதிலாக பூஜ்யமாகத் திரும்பும் . இந்த முறைகள் எதிர்மறை குறியீட்டு மதிப்புகளை ஆதரிக்கின்றன. இந்த வழக்கில், சரம் ஒரு மூடிய வளையமாக கருதப்படுகிறது. கடைசி பாத்திரம் முதல், மற்றும் பல.

அதை எப்படி பயன்படுத்தலாம் என்று பார்ப்போம்:

System.out.println(StringUtils.substring("lets java", 2, 6));
System.out.println(StringUtils.substring("lets java", -8));
System.out.println(StringUtils.substring(null, 3));

மேலே உள்ள குறியீட்டை இயக்குவது நமக்குத் தருகிறது:

ts j
ets java
null

StringUtils.split()

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

String myData = "Address, City, State, Zip, Phone, Email, Password";

System.out.println(Arrays.toString(StringUtils.split(myData, ',')));
System.out.println(Arrays.toString(StringUtils.split(null, '.')));
System.out.println(Arrays.toString(StringUtils.split("", '.')));

விளைவாக:

[Address,  City,  State,  Zip,  Phone,  Email,  Password]
null
[]

StringUtils.join()

சேர () முறையானது சரங்களின் வரிசையை ஒரு சரமாக இணைக்க உங்களை அனுமதிக்கிறது. அதே நேரத்தில், ஒரு சிறப்பு பிரிப்பான் பாத்திரத்தை அதற்கு அனுப்பலாம், இதன் விளைவாக வரும் சரத்தில் உள்ள துணை சரங்களுக்கு இடையில் சேர்க்கப்படும். மேலும் பூஜ்யத்தை முறைக்கு அனுப்பினால், அது பூஜ்யமாகத் திரும்பும் .

இந்த முறை பிளவு() முறைக்கு நேர் எதிரானது . இந்த எளிய உதாரணத்தைப் பார்ப்போம்:

String myData = "Address, City, State, Zip, Phone, Email, Password";

String[] myString =  StringUtils.split(myData, ',');
System.out.println(StringUtils.join(myString, '-'));

மேலே உள்ள குறியீட்டை இயக்குவது நமக்குத் தருகிறது:

Address- City- State- Zip- Phone- Email- Password

StringUtils.replace()

ஒரு சரத்திற்குள் ஒரு சரத்தைத் தேடுகிறது, அது இருந்தால் அதைக் கண்டறிந்து, அதன் அனைத்து நிகழ்வுகளையும் புதிய சரத்துடன் மாற்றுகிறது.

இந்த முறையின் அறிவிப்பு இதுபோல் தெரிகிறது:

public static String replace(final String text, final String searchString, final String replacement)

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

இந்த முறையை முயற்சிப்போம்:

String value = "CodeGym is the best";
System.out.println(StringUtils.replace(value, "best", "cool"));

விளைவாக:

CodeGym is the cool