Java

[Java] 자료형 (숫자, 문자열)

이덩우 2023. 5. 23. 16:39

-  숫자

  • int (4byte) : 정수형, 범위 : -2147483647 ~ 2147483647(10자리)
  • long (8byte) : 정수형, 범위 : -9223372036854775808 ~ 9223372036854775807(19자리)
  • float (4byte) : 실수형, 접미사 f or F, 소수점 6자리까지 오차없이 표현가능
  • double (8byte) : 실수형, 접미사 생략가능(d or D), 소수점 15자리까지 오차없이 표현가능 

 

-  문자열

  • String은 기본적으로 원시자료형(int, char, long, boolean ...)은 아니지만 특별 대우를 받아, 리터럴 표기가 가능하다
    ex) String str = "ABC"  
          String str = new String("ABC") 
  • 문자열 내장 메소드
    1. equals() : 두 개의 문자열이 동일한지 확인, true or false 반환

    2. substring() : 문자열 중 특정 부분을 뽑아낼 때 사용, str.substring(시작위치, 끝위치)  * 끝위치 자체는 포함이 안되므로 원하는 끝 위치 인덱스 값에 +1을 해서 채워넣자.

    3. split() : 문자열 중 특정 구분자로 문자열을 나누어 문자열 배열로 반환
    String a = "a:b:c:d";
    String[] str = a.split(":"); // str = {"a", "b", "c", "d"}

    4. indexOf() : 특정 문자열이 시작되는 인덱스를 반환 , 역탐색은 lastIndexOf(), 특정 문자열이 중복되어도 첫번째로 마주친 문자열의 인덱스를 추출
    String a = "Hello World";
    System.out.println(a.indexOf("World")); // 6

    5. contains() : 특정 문자열이 포함되어 있는지 확인, true or false 반환
    String a = "Hello World";
    System.out.println(a.contains("World")); // true

    6. charAt() : 특정 문자열에서의 인덱스에 해당하는 문자 반환
    String a = "Hello World";
    System.out.println(a.charAt(6)); // W

    7. replaceAll() : 특정 문자열을 다른 문자열로 변경
    String a = "Hello World";
    System.out.println(a.replaceAll("World", "Java")); // Hello Java

    8. toUpperCase() : 문자열을 대문자로 변환, 소문자 변환은 toLowerCase()
    String a = "Hello World";
    System.out.println(a.toUpperCase()); // HELLO WORLD

  • 문자열 포맷팅
    다음과 같이 문자열 내의 특정 문자만 바꾸고 싶을 때 사용하는 기법이다.
int number = 10;
String day = "three";
System.out.println(String.format("I ate %d apples. so I was sick for %s days.", number, day));
I ate 10 apples. so I was sick for three days.


문자열 포맷 코드)

%s 문자열(String)
%c 문자 1개(character)
%d 정수(Integer)
%f 부동소수(floating-point)
%o 8진수
%x 16진수
%% Literal % (문자 % 자체)

1. 정렬과 공백

System.out.println(String.format("%10s", "hi"));  // "        hi" 출력
        hi

위와 같이 %10s를 붙이면 크기가 10인 문자열을 생성하고 우측 정렬로 "hi"를 넣으라는 의미이다.
반대로 좌측 정렬은 %-10s를 붙이면 된다.

2. 소수점 표현

System.out.println(String.format("%.4f", 3.42134234));  // 3.4213 출력
3.4213

위와 같이 나타낼 소수점 자리수를 정해줄 수 있다.

 

- StringBuffer

  • String은 기본적으로 값이 변경불가이지만, StringBuffer은 변경가능하다. 
    메모리의 관점에서, StringBuffer을 사용하면 단 하나의 객체를 생성함으로써 반복해서 객체를 찍어내는 String보다 이득이라고 볼 수 있지만, StringBuffer자체가 무겁기 때문에 문자열을 자주 고쳐야한다면 StringBuffer을 사용하고, 아니면 String을 사용하는것이 올바르다.
    아래는 String과 StringBuffer을 사용하여 같은 결과를 얻어내는 예제이다.

    1. StringBuffer사용
StringBuffer sb = new StringBuffer();  // StringBuffer 객체 sb 생성
sb.append("hello");
sb.append(" ");
sb.append("jump to java");
String result = sb.toString();
System.out.println(result);  // "hello jump to java" 출력
hello jump to java

      2. String 사용

String result = "";
result += "hello";
result += " ";
result += "jump to java";
System.out.println(result);  // "hello jump to java" 출력
hello jump to java

     

결과는 같지만, String의 경우 result = result + " "; 의 형태로 객체를 계속 찍어내는 모습이다.

 

 

 

 

 

 

 

 

출처 : https://wikidocs.net/276

'Java' 카테고리의 다른 글

[Java] Call by value & reference  (0) 2023.05.26
[Java] for each문 & switch/case문  (0) 2023.05.25
[Java] Class (클래스), Method (메소드), 생성자  (0) 2023.05.24
[Java] 자료형 (Map, Set)  (0) 2023.05.24
[Java] 자료형 (배열, 리스트)  (0) 2023.05.23