Java 문자열에 관해 가장 많이 묻는 10가지 질문은 여기에 언급되어 있습니다.
-
문자열을 비교하는 방법은 무엇입니까? 무엇을 사용할 것인가: "
==
" 또는equals()
?간단히 말해서, "
==
"는 문자열에 대한 참조를 비교하지만equals()
해당 문자열에 포함된 값을 비교합니다. 두 문자열이 동일한 객체인지 확인하고 싶지 않다면 를 사용해야 합니다equals()
.스트링 풀 의 개념도 알아두면 좋을 것 같습니다 .
-
char[]
민감한 정보를 보호하기 위해 문자열( )을 선호하는 이유는 무엇입니까String
?문자열은 변경할 수 없습니다 . 즉, 문자열이 생성되면 가비지 수집기가 실행될 때까지 수정되지 않습니다. 배열의 경우 요소를 변경할 수 있다는 것은 매우 분명합니다. 이렇게 하면 민감한 정보(예: 비밀번호)가 프로그램의 어느 곳에도 일반 텍스트로 저장되지 않습니다.
-
switch 문을 사용할 때 문자열을 매개변수로 전달할 수 있나요 ?
예, JDK 버전 7부터 시작됩니다. 이전 버전 6에서는 이것이 불가능했습니다.
// java 7 only! switch (str.toLowerCase()) { case "a": value = 1; break; case "b": value = 2; break; }
-
문자열을 정수 값으로 변환하는 방법은 무엇입니까?
int n = Integer.parseInt("10");
Java의 다른 기본 유형에도 마찬가지입니다.
-
문자열을 공백으로 구분된 줄로 분할하는 방법은 무엇입니까?
가장 쉬운 방법은 정규식을 사용하는 것입니다. " "는 " ", " ", " ", " "
\s
와 같은 공백 문자를 대체하는 역할을 합니다 .\t
\r
\n
String[] strArray = aString.split("\\s+");
-
< 이 메소드는 실제로 무엇을 하는가
substring()
?JDK 6에서는 이 메서드가
substring()
기존 문자열의 문자 일부를 표시했지만 별도의 문자열 인스턴스를 생성하지는 않았습니다. 문자 배열로 표시되는 새 문자열을 만들려면 다음과 같이 빈 문자열을 추가하면 됩니다.str.substring(m, n) + ""
결과는 새로운 문자열인 문자 배열입니다. 가비지 수집기가 사용되지 않는 큰 문자열을 삭제하고 하위 문자열만 저장할 수 있으므로 이 접근 방식을 사용하면 코드 실행 시간이 단축되는 경우가 있습니다.
Oracle JDK 7에서는 이 메서드가
substring()
기존 문자 배열을 사용하지 않고 새 문자 배열을 생성합니다. JDK 6과 JDK 7의 substring() 메소드 간의 차이점을 나타내는 다이어그램을 살펴볼 수도 있습니다 . -
문자열 대 StringBuilder 대 StringBuffer
String
vsStringBuilder
:StringBuilder
변경 가능, 즉 객체가 생성된 후 내용을 변경할 수 있음을 의미합니다.StringBuilder
vsStringBuffer
:StringBuffer
동기화됨. 동시에 여러 스레드에서 사용될 때 올바르게 작동하지만StringBuilder
. -
한 줄을 여러 번 반복하는 방법은 무엇입니까?
Python에서는 단순히 문자열에 숫자를 곱하면
n
n번 반복됩니다.repeat()
Java에서는 Apache Commons Lang 라이브러리 클래스 의 메서드를 사용할 수 있습니다StringUtils
.String str = "abcd"; String repeated = StringUtils.repeat(str,3); //abcdabcdabcd
-
문자열을 날짜로 변환하는 방법은 무엇입니까?
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
-
문자열에서 특정 문자의 발생 횟수를 계산하는 방법은 무엇입니까?
StringUtils
Apache Commons Lang 라이브러리의 클래스를 사용하십시오 .int n = StringUtils.countMatches("11112222", "1"); System.out.println(n);
GO TO FULL VERSION