문자열이 아마 지금 단계에서 배우는 내용은 아니지만
그래도 문자열을 조금은 짚고 넘어가야할것같아서 정리한다.
""
를 사용해서 표현 String
을 사용해서 선언한다."Happy Java"
라는 문자열을 특정 메모리 공간에 저장하고 다음에 다시 동일한 문자열이 선언될 때 이 메모리공간에 있는 문자열을 제공한다.✍ 예시코드
String a = "Happy Java";
String b = "a";
String c = "123";
String a = new String("Happy Java");
String b = new String("a");
String c = new String("123");
// 객체 생성
new
객체 생성new
키워드를 생성하면 항상 새로운 객체를 생성하기 때문에, new
키워드로 같은 문자열을 선언했다 하더라도 다른 객체로 판단한다. System.out.println("hellojava");
String aString = "안녕하세요";
String bString = "안녕하세요";
String cString = new String("안녕하세요");
//new키워드는 새로운 객체 생성 따라서 b와 c가 값이 다른걸 확인가능
System.out.println( aString == bString ); //true
System.out.println( aString == cString ); //false
System.out.println( bString == cString ); //false
System.out.println( aString.equals(cString)); //true
System.out.println(aString.equals(bString)); //true
System.out.println(bString.equals(cString)); //true
🔍 한번 선언한 문자열은 바꿀 수 있을까? : 네!!
=
를 이용해서 바꿀 수 있다.✍ 예시코드
aString = "안녕하세요";
System.out.println(aString); //안녕하세요 출력
aString = "안녕안해";
System.out.println(aString); //안녕안해 출력
👉 실행 화면 : 안녕하세요, 안녕안해 각각 출력되어 변경됨을 확인할 수 있다.
replace(CharSequence target, CharSequence replacement)
target
을 replace
로 치환String str = "a,b,c,d,e";
System.out.println(str.replace(",", " ")); // a b c d e
System.out.println(str.replace(",", "")); // abcde
replaceAll(String regex, String replacement)
✍replace
와 replaceAll
차이 예시코드
String aString = "hi~";
System.out.println(aString); //hi~출력
aString = aString.replace("~",".");
System.out.println(aString); //hi. 출력
aString = aString.replaceAll(".", "~");
System.out.println(aString); //~~~ 출력
👉 정규식에서 .
는 임의의 문자 1개를 의미하기 때문에 모든 문자를 바꿨다.
정규식 알아보기
replaceFirst(String target, String replacement)
String aString = "hi~ hi~ hi~";
aString = aString.replaceFirst("hi", "Hi");
System.out.println(aString); //Hi~hi~hi 출력
String.format
메서드를 이용하는 방법: 문자열 포맷코드를 사용한다.
String name = "서현";
System.out.println(String.format("안녕 나는 %s이야", "서현"));
System.out.println(String.format("안녕 나는 %s이야",name));
System.out.printf
를 이용해 삽입하고 바로 출력하는 방법: 문자열 포맷코드를 사용한다.
System.out.printf("안녕 나는 %s이야 \n",name);
+
연산자를 이용하는 방법: 문자열 포맷코드를 사용하지 않아도 된다.
System.out.println("안녕 나는 "+name+"이야");
%s
: 문자열(String)
%c
: 문자 1개(character)
%d
: 정수(Integer)
%f
: 부동소수(floating-point)
%o
: 8진수
%x
: 16진수
%%
: Literal % (문자 % 자체)