문자열?

 

- 변수 선언 방법 : 변수 앞에 String 자료형을 붙여 선언

  String a = "Geun's formula";

  String a = new String("Geun's formula");   >> new 키워드는 객체를 만들 때 사용

 

 

- 원시 자료형(char, boolean, int ...)은 원래 new 키워드로 값을 생성할 수없음, String은 원시자료형에 포함되지 않아 new       키워드 사용 가능

 

 

- Wrapper 클래스 : 각각의 원시자료형을 대신하여 쓸 수 있는 자료형. 객체지향 프로그래밍의 모든 기능을 활용할 수있게                                 해준다.  

원시 자료형 Wrapper 클래스
int Integer
long Long
double Double
float Float
boolean Boolean
char Char

 

 

 

 

 

 

 

문자열에서 쓰이는 메서드

아래와 같이 문자열 a, b, c를 선언했을 때 기준으로 설명

 

 

String a = "Hello";

String b = "Hello java";

String c = new String("Hello");

 

 

 

- a.equals(c) : a가 b와 같은지 확인 (True or False 출력)

  ※ a == c : False 출력됨 (why? new String으로 선언하여 값은 동일하나 a와 b는 다른 객체로 선언)

- b.indexOf("java") : b에 java라는 문자열이 시작되는 위치값을 출력  (6 나옴)

- b.contains("java") : b에 java라는 문자열이 포함되어있는지 확인 (True)

- b.charAt(6) : 6번 위치의 문자를 리턴 (j 값 나옴)

- b.replaceAll("java", "Geun") : b의 java를 Geun으로 변경 (Hello Geun)

- b.substring(0, 3) : 0번부터 3번위치까지의 문자만 추출(Hell)

- b.toUpperCase() : 모두 대문자로 출력할때 사용

- b.split("#") : 문자열의 각 문자를 #으로 나누어 문자열 배열로 만듦

 

 

 

 

 

 

 

문자열 포매팅

예시 ) 

System.out.println(String.format("Error is %d%%", 99)); 

        결과값>>Error is 99% 

 

.format() 형식에 ( % + 문자형) 넣기. 

 

System.out.println(String.format(" I ate %d apples.", 3));
        System.out.println(String.format(" I ate %s apples.", "five"));

        int number = 3;
        System.out.println(String.format(" I ate %d apples.", number)); // 변수도 대입 가능

        String day = "ten";
        System.out.println(String.format(" I ate %d apples. So I was sick for %s days.", number, number));

//        System.out.println(String.format(" Error is %d%.", 98)); // 에러
        System.out.println(String.format(" Error is %d%%.", 98)); // %를 출력할때엔 %%로 입력

        System.out.println(String.format(" %5s", "hi."));
        System.out.println(String.format(" %-5sjane,", "hi."));

        System.out.println(String.format(" %.4f", 3.4231564));
        System.out.println(String.format(" %10.4f", 3.4231564)); // 전체길이 10, 소수점 넷째자리까지 오른쪽정렬
        System.out.println(String.format(" %-10.4f", 3.4231564)); // 전체길이 10, 소수점 넷째자리까지 왼쪽정렬


        System.out.printf(" %.4f", 3.4231564);  // printf 쓰면 String.format 생략 가능!
        System.out.println();
        System.out.println();
종류 설명
%s 문자열
%c 문자 1개
%d 정수
%f 부동소수
%o 8진수
%x 10진수
%% 특수문자 %

 

 

 

 

 

 

StringBuffer

 

주로 문자열을 추가하거나 변경할 때 용이하게 하기 위해 사용하는 자료형!

 

String 자료형일 때에는 추가할 때마다 새로운 String 객체를 생성하여 비효율적임.

또한 String자료형은 한 번 값이 생성되면 변경이 불가한데, StringBuffer는 자유롭게 값을 변경할 수있다.

 

추가 후에는 다시 String 문자형으로 돌리기 위해 .toString() 메서드 사용!

 

- .append(" ~~~") : 값 추가

- .insert(1, "~~~") : 1번째 위치에 새로운 문자열 값 추가

- .substring(0, 4) : 0부터 4번 위치까지 문자열 추출

 

StringBuffer sb = new StringBuffer();  // StringBuffer 객체 sb 생성
sb.append("hello");
sb.append(" ");
sb.append("jump to java.");
System.out.println(sb);
String result1 = sb.toString(); // toString() : String 자료형으로 변환
System.out.println(result1);   // StringBuffer는 객체 1번만 생성

String result2 = "";
result2 += "hello";
result2 += " jump";
result2 += " to java.";   // String은 객체 4번 생성
System.out.println(result2);

StringBuffer sb2 = new StringBuffer();
sb2.insert(0, "Hi ");  // insert : 특정 위치에 원하는 문자열 삽입 가능
System.out.println(sb2);

System.out.println(sb.substring(0, 4)); // .substring : 추출
System.out.println(sb2);