String str1 = “abcde”
String str2 = “abcde”
str1 == str2;
public static void main(String[] args) {
// TODO Auto-generated method stub
String str1 = "abcde";
String str2 = "abcde";
System.out.println(str1 == str2);
package Day06;
public class StringTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
String str1 = "abcde";
String str2 = "abcde";
System.out.println(str1 == str2);
String str3 = new String("abcde");
String str4 = new String("abcde");
System.out.println(str3 == str4);
}
}
true
false
//new가 붙지 않을경우 같은 내용으로 본다.
//new가 붙었다면, 동명이인을 생각하면 편하다.
public static void main(String[] args) {
// TODO Auto-generated method stub
String str1 = "abcde";
String str2 = "abcde";
System.out.println(str1 == str2);
public static void main(String[] args) {
// TODO Auto-generated method stub
String str1 = "abcde";
String str2 = "abcde";
System.out.println(str1 == str2);
package Day06;
public class StringTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
String str1 = "abcde";
String str2 = "abcde";
System.out.println(str1 == str2);
str2 = "abcdef"; //전혀 다른 곳에 abcdef를 새로 만든다면 기존의 str2 abcde는 버려진다. //StringBuffer String의 단점을 보완하기 위한것
str2 = "ddddd";
str2 = "abcde"; //기존의 abcde를 버리고 새로운 것을 취했어도 버린것을 다시 찾아서 적용한다.
System.out.println(str1 == str2);
String str3 = new String("abcde");
String str4 = new String("abcde");
System.out.println(str3 == str4);
}
}
true
true
false
(1) final 클래스로 상속을 받아서 수정할 수 없다.
(2) new String 또는 " "로 생성 가능
(3) 많은 주요 메서드들이 있다.
1) length() : 문자열의 길이를 return
String a = "hello";
a.length() = 5 // String에 .을 찍으면 length를 쓸수 있다.
// 1. legth()
String s1 = "efewterfirjisofeijifjiwoeivjdbnvjks";
String s2 = "한글은 몇글자로 침?";
System.out.println("s1 문자열의 길이 : " + s1.length());
System.out.println("s2 문자열의 길이 : " + s2.length());
s1 문자열의 길이 : 35
s2 문자열의 길이 : 11
2) charAt(인덱스) : 인덱스 위치에 있는 글자를 return
String jumin_bunho = "001234-3812367"
jumin_bunho.charAt(7) -> 성별을 나타내는 숫자
// 2. charAt()
String s3 = "abcdefghijkl";
System.out.println(s3.charAt(9));
2. j
3) equals(str) : str과 동일한 값인지 check
equalsIgnoreCase(str) : str 대소문자를 무시하고 비교를 한다
대소문자 관계없이 동일한 문자열 값인지 check
// 3. equals(), equalsIgnoreCase()
String s4 = new String("aaaaa");
String s5 = new String("aaaaa");
String s6 = new String("AaaAA");
//System.out.println(s4 == s5); //s4와 s5가 같은지
System.out.println("3." + (s4 == s5));
System.out.println("3." + s4.equals(s5)); //값만 비교한것
System.out.println("3." + s4.equals(s6));
System.out.println("3." + s4.equalsIgnoreCase(s6));
3.false
3.true
3.false
3.true
4) replace(찾을문자열, 대체할 문자열) : 특정 문자열을 찾아서 원하는 문자열로 대체
// 4. replace()
String s7 = "Heavern helps those";
String s8 = "help";
String s9 = s7.replace(s8," ");
String s10 = s7.replace("t", "28352369382636");
System.out.println("4." + s9);
System.out.println("4." + s10);
4.Heavern s those
4.Heavern helps 28352369382636hose
5) substring(sindex, eindex) : 기존 문자열에서 특정 부분을 잘라내어 retrun
// 5. substring()
String s11 = s7.substring(1,4);
System.out.println("5." + s11);
5.eav
6) trim() : 문자열 앞 뒤의 공백을 제거한다.
// 6. trim()
String s12 = " angel1024 ";
String s13 = s12.trim();
System.out.println("6." + s13);
6.angel1024
String s14 ="AAAAAAAangel1024AAAAAA";
String s15 = s14.trim("A");
//오류가 뜸 trim은 공백만 되기 때문에 공백이 없기에 오류!
//trim은 문자열을 줄 수 없음.
//cf) python에서는 strip("쓰레기글자리스트") => strip("1234567890") 문자를 만날때까지 날린다. 해당하는 문자가 하나라고 있으면 지워버린다.
7) split(나눌문자) : 특정 문자로 앞 뒤를 나누어 리턴
String s15 = "Victory come from right";
String[] s16= s15.split("o");
for(int i=0; i<s16.length; i++) {
System.out.println(s16[i]);
}
Vict
ry c
me fr
m right
String s15 = "Victory come from right";
String[] s16= s15.split("o ");
for(int i=0; i<s16.length; i++) {
System.out.println(s16[i]);
}
Victory come from right
String[] s17 = s15.split("[o ]"); // o 또는 space로 구분
for(int i=0; i<s17.length; i++) {
System.out.println(s17[i]);
}
//Vict
//ry
//c
//me
//fr
//m
//right
8) mathches(정규표현식) : 문자열이 정규표현식 조건에 맞는지를 리턴
// 8. matches()
String s18 = "010785287322327-875327323";
// 숫자와 -으로만 25자리 이내로 구성되었는가?
System.out.println("8." + s18.matches("[0-9]{1ㅡ25}"));
//영대소문자 또는 한글로 5자 이내냐?
String nameRule = "[A-Za-z가 -힣]{6}";
System.out.println("8." + "유미의 세포들".matches(s15));
String phoneRule = "[0][0-9]{2}[-][0,9]{3,4}[-][0-9]{4}";
System.out.println("8." + "010-3422-6323".matches(phoneRule));
// Test
// 사용자로부터 전화번호 입력을 받아서 전화번호 조건에 맞으면 마지막 4자리를 ****로 표시
// 규칙에 어긋나면 "올바른 형식이 아닙니다"
Scanner sc = new Scanner(System.in);
System.out.println("전화번호를 입력해라 : ");
String phone_num = sc.next();
if(phone_num.matches(phoneRule)) {
// (1)
phone_num = phone_num.substring(0,phone_num.length()-4) + "****";
System.out.println(phone_num);
// // (2)
// String last4 = phone_num.substring(phone_num.length()-4, phone_num.length());
// phone_num.replace(last4, "****"); //중간번호와 마지막번호가 같을 때 오동작
}
else {
System.out.println("올바른 형식이 아닙니다.");
'개발 > JAVA' 카테고리의 다른 글
예외(Exception) 처리 (0) | 2023.01.09 |
---|---|
인터페이스(Interface) (0) | 2023.01.09 |
상속 (0) | 2023.01.09 |
클래스 심화 (0) | 2023.01.09 |
함수(function) (0) | 2023.01.09 |