JAVA_12_문자열

charl hi·2021년 8월 5일
0

JAVA

목록 보기
12/53

String 문자열

  • "asdfg"
  • "a"

Character 문자

  • 'a'
  • 'asdfg' (X)

  • 그냥 개행하면 오류
  • 요런 식으로 자바가 처리함
	System.out.println("Hello "
				+ "World");


문자열 비교 연산자

대소문자 구분 O

  • 문자열1.equals(문자열2);
    -> 같으면 true, 같지 않으면 false
  • 완전히 똑같아야 함

대소문자 구분 X

  • 문자열1.equalsIgnoreCase(문자열2);
    -> 대소문자 구분 안하고 같으면 true, 같지 않으면 false

👀👀

==.equals() 의 결과는 왜 다른걸까?

String 변수 생성 방법

1. 리터럴 이용

String s = "abc";
  • string constant pool 영역에 존재

2. new 연산자 이용

String s = new String("abc");
  • 객체 생성 -> Heap 영역에 존재

두 연산자의 차이

1. ==

  • 두 대상의 객체의 주솟값 비교
  • 일반 객체처럼 Heap 영역에 생성된 String객체와, 리터럴을 이용해 string constant pool에 저장된 String객체의 주솟값은 다르다.

2. .equals()

  • String클래스의 .equals()메소드
  • 두 대상의 데이터 값 자체 비교

일반적인 타입과 String 타입의 차이

1. 일반적인 타입 : int, char...

  • Call by Value -> 기본적으로 대상에 주솟값을 가지지 않는 형태로 사용됨

2. String

  • 일반적인 타입이 아니라 클래스다.
  • 클래스는 기본적으로 Call by Reference -> 주솟값 부여
  • 같은 데이터값을 부여하더라도 서로 주솟값이 다를 수 있다.


new line : \n

  • 개행

escape : \

  • 문자 그 자체 표시?


public class stringapp {

	public static void main(String[] args) {
		System.out.println("Hello World"); // String > Character
//		System.out.println('Hello World'); // Character ..error
		System.out.println('H');  // Character
		System.out.println("H");  // String
		
		System.out.println("Hello "
				+ "World");
		
		System.out.println("Hello \nWorld");   // new line
		System.out.println("Hello \"World\"");  //Hello "World"
	}

}


public class stringoperation {

	public static void main(String[] args) {
		System.out.println("Hello World".length());
		System.out.println("Hello [[name]] ... bye. ".replace("[[name]]", "egoing"));
	}

}



Ref

0개의 댓글

관련 채용 정보