Deep_Dev
article thumbnail

String 클래슀

java.lang.String 클래슀 

Cμ–Έμ–΄μ—μ„œλŠ” λ¬Έμžμ—΄μ„ charν˜• λ°°μ—΄λ‘œ ν‘œν˜„ν•˜μ§€λ§Œ, μžλ°”μ—μ„œλŠ” λ¬Έμžμ—΄μ„ μœ„ν•œ String 클래슀λ₯Ό λ³„λ„λ‘œ μ œκ³΅ν•œλ‹€.

String ν΄λž˜μŠ€μ—λŠ” λ¬Έμžμ—΄κ³Ό κ΄€λ ¨λœ μž‘μ—…μ„ ν•  λ•Œ μœ μš©ν•˜κ²Œ μ‚¬μš©ν•  수 μžˆλŠ” λ‹€μ–‘ν•œ λ©”μ†Œλ“œκ°€ ν¬ν•¨λ˜μ–΄ μžˆλ‹€.

μ΄λŸ¬ν•œ String ν΄λž˜μŠ€λŠ” java.lang νŒ¨ν‚€μ§€μ— ν¬ν•¨λ˜μ–΄ μ œκ³΅λœλ‹€.

 

String μΈμŠ€ν„΄μŠ€λŠ” ν•œλ²ˆ μƒμ„±λ˜λ©΄ κ·Έ 값을 읽기만 ν•  수 있고, λ³€κ²½ ν•  μˆ˜λŠ” μ—†λ‹€.

μ΄λŸ¬ν•œ 객체λ₯Ό μžλ°”μ—μ„œλŠ” λΆˆλ³€ 객체(immutable object)라고 ν•œλ‹€.

즉, μžλ°”μ—μ„œ λ§μ…ˆ(+)μ—°μ‚°μžλ₯Ό μ΄μš©ν•˜μ—¬ λ¬Έμžμ—΄ 결합을 μˆ˜ν–‰ν•˜λ©΄, κΈ°μ‘΄ λ¬Έμžμ—΄μ˜ λ‚΄μš©μ΄ λ³€κ²½λ˜λŠ” 것이 μ•„λ‹ˆλΌ λ‚΄μš©μ΄ 합쳐진 μƒˆλ‘œμš΄ String μΈμŠ€ν„΄μŠ€κ°€ μƒμ„±λ˜λŠ” 것이닀.

 


charAt()

charAt() λ©”μ†Œλ“œλŠ” ν•΄λ‹Ή λ¬Έμžμ—΄μ˜ νŠΉμ • μΈλ±μŠ€μ— ν•΄λ‹Ήν•˜λŠ” 문자λ₯Ό λ°˜ν™˜ν•œλ‹€.

λ§Œμ•½ ν•΄λ‹Ή λ¬Έμžμ—΄μ˜ 길이보닀 큰 μΈλ±μŠ€λ‚˜ 음수λ₯Ό μ „λ‹¬ν•˜κ²Œ 되면, indexOutOfBoundsException 였λ₯˜κ°€ λ°œμƒν•œλ‹€.


indexOf()

indexOf() λ©”μ†Œλ“œλŠ” ν•΄λ‹Ή λ¬Έμžμ—΄μ—μ„œ νŠΉμ • λ¬Έμžλ‚˜ λ¬Έμžμ—΄μ΄ 처음으둜 λ“±μž₯ν•˜λŠ” μœ„μΉ˜μ˜ 인덱슀λ₯Ό λ°˜ν™˜ν•œλ‹€.

λ§Œμ•½ ν•΄λ‹Ή λ¬Έμžμ—΄μ— μ „λ‹¬λœ λ¬Έμžλ‚˜ λ¬Έμžμ—΄μ΄ ν¬ν•¨λ˜μ–΄ μžˆμ§€ μ•ŠμœΌλ©΄ -1을 λ°˜ν™˜ν•œλ‹€.

 

예제

String str = new String("Oracle Java");
System.out.println("원본 λ¬Έμžμ—΄ : " + str);

System.out.println(str.indexOf('o'));
System.out.println(str.indexOf('a'));
System.out.println(str.indexOf("Java"));
System.out.println("indexOf() λ©”μ†Œλ“œ 호좜 ν›„ 원본 λ¬Έμžμ—΄ : " + str);

좜λ ₯ κ²°κ³Ό

원본 λ¬Έμžμ—΄ : Oracle Java
-1
2
7
indexOf()λ©”μ†Œλ“œ 호좜 ν›„ 원본 λ¬Έμžμ—΄ : Oracle Java

 


 

trim()

trim() λ©”μ†Œλ“œλŠ” ν•΄λ‹Ή λ¬Έμžμ—΄μ˜ 맨 μ•žκ³Ό 맨 뒀에 ν¬ν•¨λœ λͺ¨λ“  곡백 문자λ₯Ό μ œκ±°ν•΄μ€€λ‹€.

 

(λ‹€μŒ μ˜ˆμ œλŠ” trim()λ©”μ†Œλ“œλ₯Ό μ΄μš©ν•˜μ—¬ λ¬Έμžμ—΄μ— ν¬ν•¨λœ 띄어쓰기와 νƒ­ 문자λ₯Ό μ œκ±°ν•˜λŠ” 예제)

예제

String str = new String(" Java     ");
System.out.println("원본 λ¬Έμžμ—΄ : " + str);

System.out.println(str + '|');
System.out.println(str.trim() + '|');
System.out.println("trim() λ©”μ†Œλ“œ 호좜 ν›„ 원본 λ¬Έμžμ—΄ : " + str);

좜λ ₯ κ²°κ³Ό

원본 λ¬Έμžμ—΄ :  Java
  Java        |
Java|
trim() λ©”μ†Œλ“œ 호좜 ν›„ 원본 λ¬Έμžμ—΄ :  Java

 


 

toLowerCase(), toUpperCase()

- toLowerCase() : ν•΄λ‹Ή λ¬Έμžμ—΄μ˜ λͺ¨λ“  문자λ₯Ό μ†Œλ¬Έμžλ‘œ λ³€ν™˜

- toUpperCase() : ν•΄λ‹Ή λ¬Έμžμ—΄μ˜ λͺ¨λ“  문자λ₯Ό λŒ€λ¬Έμžλ‘œ λ³€ν™˜

 

예제

String str=new String("Java");
System.out.println("원본 λ¬Έμžμ—΄ : " + str);

System.out.println(str.toLowerCase());
System.out.println(str.toUpperCase());
System.out.println("두 λ©”μ†Œλ“œ 호좜 ν›„ 원본 λ¬Έμžμ—΄ :"+str);

좜λ ₯ κ²°κ³Ό

원본 λ¬Έμžμ—΄ : Java
java
JAVA
두 λ©”μ†Œλ“œ 호좜 ν›„ 원본 λ¬Έμžμ—΄ : Java

 


 

isEmpty()

isEmpty() λ©”μ†Œλ“œλŠ” ν•΄λ‹Ή λ¬Έμžμ—΄μ΄ 빈 λ¬Έμžμ—΄μΈμ§€ 체크해쀀닀.

 

예제

String s1="hello";
String s2="";
System.out.println(s1.isEmpty());
System.out.println(s2.isEmpty());
-----------------------------------
좜λ ₯ κ²°κ³Ό
-----------------------------------
false
true

 


 

isUpperCase, isLowerCase, isDigit() 

- Character.isUpperCase() : λŒ€λ¬ΈμžμΈμ§€ ꡬ별

- Character.isLowerCase() : μ†Œλ¬ΈμžμΈμ§€ ꡬ별

- Character.isDigit() : μˆ«μžμΈμ§€ ꡬ별

 

예제

char[] chs={'A','a','1'};

for(char c:chs){
	if(Character.isUpperCase(c))
    	System.out.print(c+"λŠ” λŒ€λ¬Έμžμž…λ‹ˆλ‹€.");
   
    if(Character.isLowerCase(c))
    	System.out.print(c+"λŠ” μ†Œλ¬Έμžμž…λ‹ˆλ‹€.");
        
    if(Character.isDigit(c))
    	System.out.print(c+"λŠ” μ†Œλ¬Έμžμž…λ‹ˆλ‹€.");
}
--------------------------------------------
좜λ ₯ κ²°κ³Ό
--------------------------------------------
AλŠ” λŒ€λ¬Έμžμž…λ‹ˆλ‹€.
aλŠ” μ†Œλ¬Έμžμž…λ‹ˆλ‹€.
1은 μˆ«μžμž…λ‹ˆλ‹€.

 


 

equals() , equalsIgnoreCase()

λ‘κ°œμ˜ String에 κ°’λ§Œμ„ λΉ„κ΅ν•΄μ„œ κ°™μœΌλ©΄ true, λ‹€λ₯΄λ©΄ falseλ₯Ό λ°˜ν™˜ν•œλ‹€.(λŒ€μ†ŒλΉ„κ΅)

 

β€» equalsIgnoreCase()와 차이점 

 - equals() : λŒ€μ†Œλ¬Έμž ꡬ뢄 O

 - equalsIgnoreCase() : λŒ€μ†Œλ¬Έμž ꡬ뢄 X

 

예제

String s1="java";
String s2="java";
boolean equals=s1.equals(s2);
System.out.print("equals :" + equals);
--------------------------------------
좜λ ₯ κ²°κ³Ό
--------------------------------------
true

 


 

replace()

λ¬Έμžμ—΄μ— μ§€μ •ν•œ 문자" "κ°€ 있으면 μƒˆλ‘œ μ§€μ •ν•œ 문자" "둜 λ°”κΏ”μ„œ 좜λ ₯ν•œλ‹€.

 

예제

String s="A*B*C*D";
String replace=s.replaceAll("*","-");
System.out.print("replace :"+ replace);
----------------------------------------
좜λ ₯ κ²°κ³Ό
----------------------------------------
A-B-C-D

 


 

 

replaceAll()

μ •κ·œ ν‘œν˜„μ‹μ„ μ§€μ •ν•œ 문자둜 λ°”κΏ”μ„œ 좜λ ₯ν•œλ‹€.

 

예제

String s="AB CD";
String replaceAll=s.replaceAll("\\p{space}", "*");
System.out.print("replaceAll :"+ replaceAll);
----------------------------------------
좜λ ₯ κ²°κ³Ό
----------------------------------------
AC*CD

 


 

 

split()

μ§€μ •ν•œ 문자둜 λ¬Έμžμ—΄μ„ λ‚˜λˆŒ 수 μžˆλ‹€. (λ°°μ—΄λ‘œ λ°˜ν™˜)

 

예제

String s="A:B:C:D:abcd";
String[] split=s.split(":");
System.out.print("split: "+split[1]);
----------------------------------------
좜λ ₯ κ²°κ³Ό
----------------------------------------
B

 

 

πŸ“Œ 곡백 주의 ν•  포인트 

String[] arr = s.split(" ",-1);

 

μ—¬κΈ°μ—μ„œ -1이 κ°€μ§€λŠ” μ˜λ―Έκ°€ λ¬΄μ—‡μΌκΉŒ ? 

 

μ΄λŠ” λΆ„ν• λœ λ¬Έμžμ—΄μ— 빈 λ¬Έμžμ—΄λ„ ν¬ν•¨λ˜λ„λ‘ ν•œλ‹€. 

예λ₯Ό λ“€μ–΄μ„œ, s = "A B C " μ΄λ ‡κ²Œ Cκ°€ λλ‚˜κ³  곡백이 ν•˜λ‚˜ 더 μžˆλ‹€κ³  ν•΄λ³΄μž. 

λ‹¨μˆœν•˜κ²Œ s.split(" ")둜 μ“Έ 경우 ν•΄λ‹Ή 배열은 ["A","B","C"] 이닀. 

ν•˜μ§€λ§Œ s.split(" ", -1)일 경우 ν•΄λ‹Ή 배열은 ["A","B","C"," "] 이닀. 

μ£Όμ˜ν•˜λ„λ‘ ν•˜μž !

 


 

substring()

λ¬Έμžμ—΄μ— μ§€μ •ν•œ λ²”μœ„μ— μ†ν•˜λŠ” λ¬Έμžμ—΄μ„ λ°˜ν™˜ν•œλ‹€. ( μ‹œμž‘λ²”μœ„μ— 값은 포함이고, λλ‚˜λŠ” λ²”μœ„μ— 값은 ν¬ν•¨ν•˜μ§€ μ•ŠλŠ”λ‹€ )

 

예제

String s="ABCDEF";
String substring=s.substring(0,2);
System.out.print("substring: "+substring);
----------------------------------------
좜λ ₯ κ²°κ³Ό
----------------------------------------
AB

 


 

toString()

λ¬Έμžμ—΄μ„ κ·ΈλŒ€λ‘œ λ°˜ν™˜ν•œλ‹€.

 

예제

String s="1234";
String toString=s.toString();
System.out.print("toString:"+toString();
----------------------------------------
좜λ ₯ κ²°κ³Ό
----------------------------------------
1234

 


 

contains()

λ‘κ°œμ˜ String을 λΉ„κ΅ν•΄μ„œ λΉ„κ΅λŒ€μƒ String을 ν¬ν•¨ν•˜κ³  있으면 true, λ‹€λ₯΄λ©΄ falseλ₯Ό λ°˜ν™˜.

 

예제

String s1="abcd";
String s2="c";
if(s1.contains(s2))
	System.out.print("true");
----------------------------------------
좜λ ₯ κ²°κ³Ό
----------------------------------------
true

 


 

concat()

λ¬Έμžμ™€ 문자λ₯Ό κ²°ν•©ν•΄μ€€λ‹€.

 

예제

String s1="Hi";
String s2="Hello";
String concat=s1.concat(s2);
System.out.print("concat:" + concat);
----------------------------------------
좜λ ₯ κ²°κ³Ό
----------------------------------------
HiHello

 


 

valueOf()

μ§€μ •λœ 값을 λ¬Έμžμ—΄λ‘œ λ°˜ν™˜ν•œλ‹€. (int to String κ°€λŠ₯)

 

β€» toString()κ³Ό 차이점 : toString()은 nullκ°’ ν˜• λ³€ν™˜μ‹œ NullPointerException λ°œμƒ

예제

int n=5;
String s=String.valueOf(n);
System.out.print(s);
----------------------------------------
좜λ ₯ κ²°κ³Ό
----------------------------------------
"5"

// sλ₯Ό λ‹€μ‹œ charν˜•μ— λ„£μœΌλ €λ©΄
char[] ch=s.toCharArray

 


 

getNumericValue()

숫자 ν˜•νƒœμ˜ charν˜•μ„ intν˜•μœΌλ‘œ λ³€ν™˜

 - λ§€κ°œλ³€μˆ˜ char : λ³€ν™˜ν•˜κ³ μž ν•˜λŠ” charν˜• 숫자

 - λ°˜ν™˜κ°’ int : λ°˜ν™˜λœ intν˜• 숫자

 

예제

String s="324";

char a=s.charAt(0);
char b=s.charAt(1);
char c=s.charAt(2);

int aa=Character.getNumericValue(a);
int bb=Character.getNumericValue(b);
int cc=Character.getNumericValue(c);

System.out.print(aa+bb+cc);
-------------------------------------
좜λ ₯ κ²°κ³Ό
-------------------------------------
9

 


 

β€» μ—¬λŸ¬κ°€μ§€ λ©”μ†Œλ“œ 

 

'πŸ“š μ½”λ”©ν…ŒμŠ€νŠΈ > JAVA' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[JAVA] List : LinkedList  (0) 2022.10.26
[JAVA] List : ArrayList  (0) 2022.10.26
[JAVA] StringBuilder  (0) 2022.10.26
[JAVA] 문법 : ν˜•λ³€ν™˜ 정리  (0) 2022.10.26
[JAVA] LRU ( μΊμ‹œ )  (0) 2022.10.19