728x90
반응형
SMALL

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("올바른 형식이 아닙니다.");

 

728x90
반응형
LIST

'개발 > JAVA' 카테고리의 다른 글

예외(Exception) 처리  (0) 2023.01.09
인터페이스(Interface)  (0) 2023.01.09
상속  (0) 2023.01.09
클래스 심화  (0) 2023.01.09
함수(function)  (0) 2023.01.09

+ Recent posts