Pambuka kanggo StringUtils

StringUtils minangka kelas Apache Commons sing paling akeh digunakake. Isine macem-macem utilitas lan cara sing mbantu pangembang supaya ora nulis boilerplate utawa mung kode sing ora bisa digunakake kanggo operasi dhasar.

Akeh metode ing kelas StringUtils duwe java.lang.String sing padha nanging, ora kaya metode java.lang.String , ora aman. Iki tegese NullPointerException ora dibuwang ing wayahe sing paling ora dikarepke.

Apache Commons ngemot sawetara cara, lan kita bakal nliti sawetara sing paling umum digunakake.

Daftar metode StringUtils:

kosong() Priksa yen senar kosong
padha () Mbandhingaké strings
mbandhingake () Mbandhingaké strings
indeksOf() Nemokake substring ing senar
lastIndexOf() Nemokake substring ing senar
ngandhut() Priksa manawa substring ana ing senar
ngandhutIgnoreCase() Priksa manawa ana substring ing senar, ora nggatekake kasus
ngandhutAny() Priksa manawa ana substring ing ngendi wae ing senar
ngandhutNone() Priksa manawa ana substring ing ngendi wae ing senar
ngandhutMung() Priksa manawa substring ana ing senar
substring() Njupuk substring
pamisah() Pisah senar dadi substrings
gabung() concatenate substrings
mbusak () Mbusak substring
ganti() Ganti substring
countMatches() Ngetung jumlah sing cocog

StringUtils.isEmpty() lan StringUtils.isBlank()

Loro-lorone cara digunakake kanggo mriksa yen senar ngemot teks apa wae. Padha bali bener yen senar tenan kosong. Kajaba iku, isBlank () uga bakal bali bener yen senar mung ngemot spasi.

Padha uga duwe cara kuwalik dhewe: isNotEmpty () lan isNotBlank () .

Ayo ndeleng carane sampeyan bisa nggunakake isEmpty() bebarengan karo java.lang.String.isEmpty() mitra , uga 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");
}

Ana telung variabel saka jinis String kene . Siji nuding null , kaloro ora null nanging ora ana isi (string kosong), lan katelu ora kosong nanging bakal nyithak asil kosong.

Nglakokake kode iki ngasilake:

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

Cara isEmpty () dibangun ing java.lang.String ora null aman . Sampeyan bakal gampang njaluk NullPointerException yen nyoba kanggo mriksa yen kosong, amarga sampeyan nelpon cara ing referensi null . Sampeyan kudu mriksa luwih dhisik manawa referensi kasebut nol:

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");
}

Saiki iki nyebabake:

emptyValue is emptyValue
blankValue is blankValue

Lan yen kita nyoba cara iki ingnullString:

String nullValue = null;

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

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

Banjur kita entuk:

nullValue is emptyValue
nullValue is blankValue

Metode StringUtils ora aman lan ngasilake asil sing dikarepake sanajan dilewati null .

StringUtils.equals()

Cara iki mbandhingake loro strings lan bali bener yen padha identik utawa yen loro referensi nuding null , nanging weruh sing cara iki sensitif huruf cilik.

Ayo ndeleng cara kerjane:

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"));

asil:

true
false
false
true
false

Kanggo mbandhingake metode equals() saka StringUtils karo 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"));

Iki nggawa sampeyan bali menyang:

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

Maneh, nelpon cara ing referensi null asil ing NullPointerException , lan sampeyan kudu mriksa yen variabel referensi null sadurunge nggunakake.

StringUtils.compare()

Pranyatan cara iki katon kaya iki:

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

Cara iki mbandhingake rong senar kanthi leksikografis, kaya cara java.lang.String.compareTo() , bali:

  • 0 yen str1 padha karo str2 (utawa loro-lorone null)
  • Nilai kurang saka 0 yen str1 kurang saka str2
  • Nilai luwih saka 0 yen str1 luwih saka str2

Urutan leksikografis yaiku urutan kamus. Ayo ndeleng carane kita bisa nggunakake iki ing program kita:

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"));

Kita entuk:

0
-1
1
32
0

Cathetan: Nilai null dianggep kurang saka nilai non- null . Loro nilai null dianggep padha.

Priksa manawa senar ngemot substring liyane

Kanggo nindakake iki, StringUtils duwe 5 cara:

  • ngandhut()
  • ngandhutIgnoreCase()
  • ngandhutAny()
  • ngandhutNone()
  • ngandhutMung()

Metode ngemot () ngasilake bener utawa salah gumantung manawa urutan telusuran ana ing urutan liya utawa ora.

Yen null diterusake menyang cara kasebut , bakal ngasilake palsu . Yen non- null liwati , cara mung bakal nelpon java.lang.String.indexOf(String str) ing obyek liwati.

Tuladha:

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"));

Cara kasebut sensitif huruf cilik, mula telpon pungkasan uga bakal bali palsu :

false
true
false
false

Metode containsAny () bali bener yen string liwati minangka argumen pisanan ngemot paling ora siji saka substrings liwati ing argumen 2-N.

Tuladha:

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

Bakal nampilake:

true

Cara iki uga sensitif huruf cilik.

containsNone() metode

Nalika sampeyan kudu mriksa sing senar tartamtu ora ngemot apa-apa saka dhaftar, sampeyan bisa nggunakake containsNone () cara . Parameter pisanan yaiku senar, lan paramèter ing ngisor iki minangka senar sing ora kudu ana ing sink target.

Tuladha:

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

Output konsol:

false

Nggarap substrings

Nggarap substrings padha karo nggarap metode kelas String :

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

Cara iki ngasilake substring saka string str . Senar kasebut diwenehi rong indeks: wiwitan lan pungkasan . Lan kaya biasane ing basa Jawa, karakter pungkasan ing sawetara yaiku end-1 . Apa keuntungan saka metode kasebut?

Yen sampeyan pass null kanggo kuwi cara , iku mung bakal bali null tinimbang mbuwang pangecualian. Cara kasebut ndhukung nilai indeks negatif. Ing kasus iki, senar dianggep minangka loop tertutup. Karakter pungkasan diterusake dening sing pisanan, lan sateruse.

Ayo ndeleng carane kita bisa nggunakake:

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

Mbukak kode ing ndhuwur menehi kita:

ts j
ets java
null

StringUtils.split()

Cara sing ngijini sampeyan kanggo pamisah string menyang substrings nggunakake karakter delimiter khusus. Yen ana siji ing senar target, banjur cara bakal ngasilake array saka substrings. Yen ora ana karakter, array kosong bakal bali. Inggih, yen null diterusake menyang metode , bakal bali null . Ayo goleki kode iki lan cara kerjane:

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("", '.')));

asil:

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

StringUtils.join()

Cara gabung () ngidini sampeyan nggabungake array senar dadi senar siji. Ing wektu sing padha, karakter separator khusus bisa dilewati, sing bakal ditambahake ing antarane substrings ing senar sing diasilake. Lan yen null diterusake menyang cara , banjur bakal bali null .

Cara iki minangka kebalikan saka metode pamisah () . Ayo ndeleng conto prasaja iki:

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

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

Mbukak kode ing ndhuwur menehi kita:

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

StringUtils.replace()

Nggoleki senar ing senar, nemokake yen ana, lan ngganti kabeh kedadeyan kasebut nganggo senar anyar.

Pranyatan cara iki katon kaya iki:

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

Yen string telusuran ora ditemokake ing teks, mula ora ana sing kedadeyan lan teks bakal tetep padha. Dipuntedahaken logika padha, yen teks null , cara iki ngasilake null . Yen sampeyan nggoleki string null utawa ngganti substring karo null , cara kasebut bakal ngasilake string asli.

Ayo coba cara iki:

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

asil:

CodeGym is the cool