JAVA/자료형

String (문자열)

개발메모장 2022. 10. 6. 17:12

String - 문자열  / 문자열

public class zzzz {
    public static void main(String[] args) {
        
        String a = "Hello Java";
        String b = "Bye Java";
        String c = "Hello Java";
        
    }
}

charAt - 문자열 중 n번째 값에 어떤 문자가 있는지 확인 / 문자열 

public class zzzz {
    public static void main(String[] args) {
        
        String a = "Hello Java";
        String b = "Bye Java";
        String c = "Hello Java";

        System.out.println(a.charAt(0)); //String a의 값인 Hellow Java의 첫번 째 값이 출력
    }
}
//H

contains - 문자열 안에 특정 문자가 포함 됐는지 확인 / 논리 값

public class zzzz {
    public static void main(String[] args) {
        
        String a = "Hello Java";
        String b = "Bye Java";
        String c = "Hello Java";

        System.out.println(a.contains("Java")); //String a 값안에 Java라는 단어가 있으면 true 없으면 false
        System.out.println(a.contains("Kava")); //String a 값안에 Kava라는 단어가 있으면 true 없으면 false
    }
}
//true
//false

equals - 문자열이 같은지 확인 / 논리 값

public class zzzz {
    public static void main(String[] args) {
        
        String a = "Hello Java";
        String b = "Bye Java";
        String c = "Hello Java";

        System.out.println(a.equals(c)); //String a 와 c가 같으면 true 아니면 false
        System.out.println(a.equals(b)); //String a 와 b가 같으면 true 아니면 false
    }
}
//true
//false

indexOf - 문자열 중 특정 문자가 몇 번째에 있는지 확인 가능/ 정수 값

public class zzzz {
    public static void main(String[] args) {
        
        String a = "Hello Java";
        String b = "Bye Java";
        String c = "Hello Java";

        System.out.println(a.indexOf("J")); //String a 값 안에 "J"가 몇 번째 있는지
    }
}
//6

*자바는 숫자를 0부터 시작한다.


replaceAll - 문자열 중 특정 문자를 변경 / 문자열

public class zzzz {
    public static void main(String[] args) {
        
        String a = "Hello Java";
        String b = "Bye Java";
        String c = "Hello Java";

        System.out.println(a.replaceAll("Hello", "Goodmoring"));
        //String a 값 안에 "Hello" 값을 "Goodmorind" 으로 변경
    }
}
//Goodmoring Java

formatting 

 

String.format을 사용해 사용 가능

 

%d - 정수 값 int

%s - 문자열 String (숫자도 가능해서 데이터에 상관 없는거면 걍 이거 써도 됨)

%c - 문자 1개 char

%d%% - 뒤에 % 붙히고 싶을 때

 

예시)

public class zzzz {
    public static void main(String[] args) {
        
        System.out.println(String.format("나는 햄버거를 최대 %d개 까지 먹을 수 있다", 3));
        //String.format을 이용해서 사용
    }
}
//나는 햄버거를 최대 3개 까지 먹을 수 있다

substring - 문자열 중 특정 문자열 구간을 확인 / 문자열

public class zzzz {
    public static void main(String[] args) {
        
        String PhoneNum = "010-1234-5678";
        String StartNum = PhoneNum.substring(0, 3);       //PhoneNum 문자열 중 0~3번째 값을 StartNum으로 변수 선언
        String MidNum = PhoneNum.substring(4, 8);         //PhoneNum 문자열 중 4~8번째 값을 MidNum으로 변수 선언
        String EndNum = PhoneNum.substring(9);  //PhoneNum 문자열 중 9번째 부터 끝까지 값을 EndNum으로 변수 선언

        System.out.println(StartNum); //끝자리는 생략되서 나옴 3이니깐 - 이게 생략
        System.out.println(MidNum);
        System.out.println(EndNum);
    }
}
//010
//1234
//5678

toUpperCase - 문자열을 대문자로 변경할 때 사용

toLowerCase - 문자열을 소문자로 변경할 때 사용

 

public class zzzz {
    public static void main(String[] args) {
        
        String a = "hello java";
        String b = "GOOBYE JAVA";

        System.out.println(a.toUpperCase()); //대문자로 변경
        System.out.println(b.toLowerCase()); //소문자로 변경
    }
}
//HELLO JAVA
//goodbye java

Split - 문자열을 특정 구분자로 분리 / 문자열 배열로 만들 수 있다.

 

String word = "A:B:C:D";
String[] word2 = word.split(":");
//구분자 : 이걸로 분리한다. *분리하면 배열로 변환 됨, 배열로 변환 되서 [] 입력 해줘야 인식함

 

배열로 변환 되었기에 출력 방식은 두 가지 이다. Arrays.toString(); / String.join();

 

Arrays.toString();

import java.util.Arrays;

public class zzzz {
    public static void main(String[] args) {
        
        String word = "A:B:C:D";
        String[] word2 = word.split(":");
        //구분자 : 이걸로 분리한다. *분리하면 배열로 변환 됨, 배열로 변환 되서 [] 입력 해줘야 인식함

        System.out.println(Arrays.toString(word2)); //배열로 변환 되서 Arrays.toString() 으로 출력
    }
}
//[A, B, C, D]

 

String.join();

public class zzzz {
    public static void main(String[] args) {

        String[] word = {"A", "B", "C", "D"}; // 배열
        String alpa = String.join(",", word);
        // 배열을 변환 없이 출력 하면 오류 나니깐 String.join("구분자," 출력대상) 사용해 변환

        System.out.println(alpa);
    }
}
//A, B, C, D

 

또는 for 문 등등 있다.

 

*참고 블로그 https://codechacha.com/ko/java-convert-array-to-string/#3-stringjoin%EC%9C%BC%EB%A1%9C-%EB%B0%B0%EC%97%B4%EC%9D%84-%EB%AC%B8%EC%9E%90%EC%97%B4%EB%A1%9C-%EB%B3%80%ED%99%98


StringBuffer / StringBuilder - 문자열 값 안에 추가 / 문자열

StringBuffer a = new StringBuffer();
StringBuilder b = new StringBuilder();

 

 

append - 문자열 추가

public class zzzz {
    public static void main(String[] args) {

        StringBuffer sports = new StringBuffer();

        sports.append("축구");
        sports.append("야구");
        sports.append("농구");

        System.out.println(sports);
    }
}
//축구야구농구

 

toString(); 를 이용하면 String 자료형으로 변경할 수 있다.

public class zzzz {
    public static void main(String[] args) {

        StringBuffer sports = new StringBuffer();

        sports.append("축구");
        sports.append("야구");
        sports.append("농구");

        String a = sports.toString(); //toString(); 으로 자료형으로 변경
        System.out.println(a);
    }
}
//축구야구농구

insert - 특정 위치에 원하는 문자열을 추가 가능

 

public class zzzz {
    public static void main(String[] args) {

        StringBuffer sports = new StringBuffer();

        sports.append("축구");
        sports.append("야구");
        sports.append("농구");


        System.out.println(sports.insert(0,"배구")); //맨 첫번째 위치에 "배구"를 추가
    }
}
//배구축구야구농구