본문 바로가기
웹프로그래밍/Java

Java Strings

by Seras 2017. 11. 22.
반응형

다음은 Java Strings에 대한 자주 묻는 10 가지 질문입니다.

1. 문자열을 비교하는 방법? "=="를 사용하거나 equals ()를 사용 하시겠습니까?

간단히 말해, "=="은 참조가 동일하면 테스트하고 값이 동일하면 equals () 테스트를 수행합니다. 

두 문자열이 같은 객체인지 확인하고 싶지 않다면 항상 equals ()를 사용해야합니다.

문자열 인턴 의 개념을 알고 있다면 더 좋을 것 입니다.

2. 보안에 민감한 정보를 위해 char보다 char이 더 좋은 이유는 무엇입니까?

문자열은 불변 (immutable )하므로 일단 생성되면 가비지 컬렉터가 시작될 때까지 변경되지 않습니다. 배열을 사용하면 명시 적으로 요소를 변경할 수 있습니다. 이러한 방식으로 보안 민감한 정보 (예 : 암호)는 시스템의 어느 곳에도 존재하지 않습니다.

3. switch 문에 string을 사용할 수 있습니까?

버전 7에서 예. JDK 7 에서 문자열을 스위치 조건으로 사용할 수 있습니다. 버전 6 이전에는 문자열을 스위치 조건으로 사용할 수 없습니다.

// java 7 only!
switch (str.toLowerCase()) {
      case "a":
           value = 1;
           break;
      case "b":
           value = 2;
           break;
}

4. string을 int로 변환하는 방법은 무엇입니까?

int n = Integer.parseInt("10");

단순하지만 자주 사용되며 때로는 무시됩니다.

5. 공백 문자로 문자열을 분할하는 방법은 무엇입니까?

String[] strArray = aString.split("\\s+");

6. substring () 메서드가 실제로하는 일은 무엇입니까?

JDK 6에서 substring () 메서드는 기존 String을 나타내는 char 배열에 창을 제공하지만 새 String은 생성하지 않습니다. 새로운 문자 배열로 표현 된 새로운 문자열을 생성하려면 다음과 같이 빈 문자열을 추가하면됩니다.

str.substring(m, n) + ""

Oracle JDK 7에서 substring ()은 새로운 char 배열을 생성하고 기존의 char 배열을 사용하지 않습니다. JDK 6와 JDK 7의 substring () 차이점 을 보여주는 다이어그램을 확인하십시오 .

7. String vs StringBuilder vs StringBuffer

String vs StringBuilder : StringBuilder는 변경할 수 있습니다. 즉, 생성 후 수정할 수 있습니다. 

StringBuilder와 StringBuffer : StringBuffer는 동기화되어 스레드 안전성이 있지만 StringBuilder보다 느리다는 것을 의미합니다.


8. 문자열을 반복하는 방법?

파이썬에서는 숫자를 곱하여 문자열을 반복 할 수 있습니다. Java에서는 Apache Commons Lang 패키지의 StringUtils의 repeat () 메소드를 사용할 수 있습니다.

String str = "abcd";
String repeated = StringUtils.repeat(str,3);
//abcdabcdabcd

9. 문자열을 날짜로 변환하는 방법은 무엇입니까?

String str = "Sep 17, 2013";
Date date = new SimpleDateFormat("MMMM d, yy", Locale.ENGLISH).parse(str);
System.out.println(date);
//Tue Sep 17 00:00:00 EDT 2013

10. 문자열에서 문자의 발생 횟수를 계산하는 방법은 무엇입니까?

StringUtils을 사용하십시오.

int n = StringUtils.countMatches("11112222", "1");
System.out.println(n);


반응형

'웹프로그래밍 > Java' 카테고리의 다른 글

Java Maps  (0) 2017.11.22
Java Collections  (0) 2017.11.22
Java Array  (0) 2017.11.22
Java HashMap의 자주 사용되는 메소드  (0) 2017.11.22
Request, Response객체  (0) 2017.11.22