Java

[Java] 기초 자료형과 문자 포매팅.

Rachel_ 2022. 1. 5. 20:41

1. 문자형에 대한 이해, 문자 포매팅

 

public class Chapter03_1 {
    public static void main(String[] args) {
        // indexOf : 특정 문자가 시작되는 위치를 리턴
        String index = "hello World";
        System.out.println(index.indexOf("World")); // 6(자바는 숫자를 0부터 세기 때문에 실질적으로 7번째)

        // contains : 문자열에서 특정 문자열이 있는지의 boolean;
        System.out.println(index.contains("Wor")); // true;

        // replaceAll : 문자열 중 특정 문자열을 다른 문자열로 바꾸고자 할 때 사용
        System.out.println(index.replaceAll("World", "Java"));

        // substring : 문자열의 n<= 출력 < m 의 문자열을 출력. 즉 m의 값은 출력안함
        System.out.println(index.substring(0, 4)); // Hell

        // split : 특정 기호를 기준으로 데이터값을 분리하는 메소드. 배열로 만들어준다.
        String[] resultIndex = index.split(" ");
        System.out.println(resultIndex[0] + " " + resultIndex[1]); // {"Hello", "World" } 로 나뉨.

        // %d %s %c ... 문자포매팅
        // %와 s, d.. 등의 사이에 정수값을 넣으면 사이공간을 공백으로 한다. 음수값을 넣으면 왼쪽정렬이 된다.
        System.out.printf("%10s", resultIndex[1]);
        // 소수점을 표현할 수도 있다.
        double numIndex = 3.21311223344;
        // %뒤의 5는 전체자릿수(.소수점포함)를 의미하고, 3은 소수점 뒤의 몇 자리까지 출력할 지를 의미한다.
        // 이를 활용해 $10.3f 와 같이 쓸 경우, 공백이 5개 발생 후 "     3.213"가 출력된다.
        System.out.println(String.format("\n"+ "%5.3f", numIndex)); // 출력법은 format를 사용하거나 printf 를 사용한다.
    }
}

 

2. 문자데이터의 수정

 

public class Chapter03_2 {
    public static void main(String[] args) {
        // 문자열의 추가에는 StrinfBuffer 를 사용하는 법과 string result += " " 를 사용하는 방법이 있다.
        // 전자는 하나의 객체를 생성 후 buffer 데이터를 씌워 출력한다면 후자는 새로운 string 객체를 계속해서 생성해 덮어씌우는 형식이다.
        StringBuffer sb = new StringBuffer();
        sb.append("hi"); // 즉 StringBuffer 라는 객체를 생성 후 계속해서 append 더하는 느낌
        sb.append(" hello");
        sb.append(" my name is");
        System.out.println(sb.toString());

        String result01 = "hi"; // "hi"라는 데이터를 가진 result01를 생성
        result01 += " hello"; // "hi hello" 라는 데이터를 가진 객체 생성 후, 위의 객체를 삭제...
        result01 += " my name is"; // 새로운 객체가 생성되는 이유는, string 객체는 내부의 값을 변경할 수 없는 자료형이기 때문이다.
        System.out.println(result01);

        // insert : 데이터에 문자열 삽입
        sb.insert(0, "Java ");
        System.out.println(sb.toString()); // Java hi hello my name is
    }
}