[Java] String 클래스

YoungMinKim·2020년 11월 8일
0
post-thumbnail

String Instance 생성의 두 가지 방법

Stirng str1 = new String("simple String");
String str2 = "The Best String";

String Class

  • String str = new String("String");
    • new 선언을 통해 만들어진 String은 각각의 Instance를 생성한다.
    • new 선언을 통해 만들어지지 않은 String은 동일한 Instance를 참조한다. (생성되는 Instance 최소화)
    • 동일한 문자열을 가지고 있을 때 위와 같은 개념이 성립 된다.
  • String Instance는 Immutable Instance
  • Immutable Instance는 값을 변경 할 수 없다. (기존에 만들어 둔 String Class의 Instance를 참조하게 한다)

String Class의 Method

class StirngConcat{
	public static void main(String [] args){
		String st1 = "Coffee";
		String st2 = "bread";
			
		String st3 = st1.concat(st2);
		System.out.println(st3);

		String st4 = "Fresh".concat(st3);
		System.out.println(st4);
	}
}

String Class Method
String.concat();

  • String Instance.concat(st3)을 사용하여 문자열을 연결해 주는 역할을 한다.
  • concat Method는 문자열만 매개변수 인자로 받을 수 있다.
  • String.concat(str1).concat(str2) 처럼 연속적으로 concat()를 사용 할 수 있다.
Stirng str = "age : " + 17;
String str = "age : " + .concat(String.valueOf(17));
//기존에 무의식적으로 사용하던 부분임, 다시한번 점검 필요.

StringBuilder

StringBuilder

  • concat와 다르게 데이터 타입 여부와 상관없이 모든 데이터를 Builder 영역에 저장 한다.
  • toString()가 호출되면 모든 데이터에 대한 String Instance의 참조 값을 반환 해준다.

String.subString()

  • String str = "Apple";**
  • str.subString(시작 위치, 끝 위치-1);
  • 0 ~ 끝자리 -1 로 구성된다.
  • 인덱스를 기준으로 문자열 출력.

String.equals()

  • String str = "lex";
  • String str2= "lex";
  • str.equals(str2);
  • str이 가지고 있는 문자열, str2이 가지고 있는 문자열 비교
  • 두 문자열이 동일하면 boolean 형태로 값을 반환 해준다.

String.compareTo()

  • str.compareTo(st2);
  • str이 가지고 있는 문자열, str2이 가지고 있는 문자열 비교 후 숫자 반환
  • 사전 편찬 순서 상 비교 하여 앞서면 음수, 뒤면 양수

기본 자료형의 값을 문자열로 바꾸기

String.valueOf(e);

  • String.valueOf(e)
  • valueOf(e)에 들어온 'e' 변수 값을 문자열로 치환 해주는 Method.

StringBuffer

StringBuffer

  • StringBuffer는 쓰레드에 안전하다.
  • 따라서 쓰레드 안정성이 불 필요한 상황에서 StringBuffer를 사용하면 성능 저하 유발.
  • 그래서 StringBuilder가 등장.

콘솔 출력

콘솔 출력
toString() Method??

  • 매개변수로 전달되는 인자를 문자열로 반환해 주는 Method.

println() - print()의 특징

  • println(참조 값)이 전달되면 해당 참조 값의 toString() Method가 호출된다. (없으면??)
  • 모든 클래스에는 toString() Method가 존재한다.
  • 즉 toString()이 존재하지 않는 Instance는 없다는 의미다.

문자열의 조합 printf Method

printf

  • 첫번째 영역에는 문자열 형식이 와야 한다.
  • 두번째 영역에는 형식에 맞춰 출력 할 데이터가 온다.

콘솔 입력

pulic static void main(String [] args){
	String source = "1 3 5";
	Scanner sc = new Scanner(**source**);
	Scanner sc = new Scanner(**System.in**); //System.in을 선언해 키보드 정보를 가져온다.
	
	int num1 = sc.nextInt();
	int num1 = sc.nextInt();
	int num1 = sc.nextInt();

	int sum = num1 + num2 + num3;
	System.out.println(sum);
}

콘솔 입력
Scanner Class (Program은 기본적으로 입력, 출력이 가능해야 한다)
→ Scanner Class의 Instance 생성은 데이터를 뽑아 올 대상과의 연결을 의미한다.

  • Scanner(File source)
  • Scanner(String source)
  • Scanner(InputStream source)

Scanner

  • Data를 위에서부터 순서대로 읽는 클래스를 Scanner Class.
  • Keyboard, File의 데이터를 읽는 클래스.

Scanner Method

  • int nextInt()
  • byte nextByte()
  • String nextLine()
  • double nextDouble()
  • boolean nextBoolean()
profile
https://ym1085.github.io

0개의 댓글