[java] Java Character 클래스에서 빈 문자를 나타내는 방법

Java ""에서 String 과 같이 빈 문자를 나타내고 싶습니다 .

그렇게 char ch = an empty character;

사실은 공백을 남기지 않고 문자를 바꾸고 싶습니다.

나는 이것이 의미하는 바를 이해하는 것으로 충분할 것이라고 생각합니다.



답변

할당 할 수 있습니다 '\u0000'(또는 0). 이를 위해 Character.MIN_VALUE.

Character ch = Character.MIN_VALUE;


답변

char정확히 하나의 문자를 의미합니다. 이 유형에는 0 개의 문자를 할당 할 수 없습니다.

이는 String.replace(char, char)길이가 다른 문자열을 반환하는 char 값이 없음을 의미합니다 .


답변

Character는 Object에서 파생 된 클래스이므로 null을 “인스턴스”로 할당 할 수 있습니다.

Character myChar = null;

문제 해결됨 😉


답변

빈 문자열은 char[]요소가없는 래퍼입니다 . 비어있을 수 있습니다 char[]. 그러나 당신은 “빈”을 가질 수 없습니다 char. 다른 프리미티브와 마찬가지로 a char는 값을 가져야합니다.

“공백을 남기지 않고 문자를 교체”하고 싶다고합니다.

를 처리하는 경우 해당 요소가 제거 char[]된 새 항목 char[]을 만듭니다 .

를 처리하는 경우 문자가 제거 String된 새 String(String is immutable)를 만듭니다 .

다음은 문자를 제거하는 방법에 대한 몇 가지 샘플입니다.

public static void main(String[] args) throws Exception {

    String s = "abcdefg";
    int index = s.indexOf('d');

    // delete a char from a char[]
    char[] array = s.toCharArray();
    char[] tmp = new char[array.length-1];
    System.arraycopy(array, 0, tmp, 0, index);
    System.arraycopy(array, index+1, tmp, index, tmp.length-index);
    System.err.println(new String(tmp));

    // delete a char from a String using replace
    String s1 = s.replace("d", "");
    System.err.println(s1);

    // delete a char from a String using StringBuilder
    StringBuilder sb = new StringBuilder(s);
    sb.deleteCharAt(index);
    s1 = sb.toString();
    System.err.println(s1);

}


답변

chars정수 (ASCII- 코드)로 표현할 수 있듯이 다음과 같이 간단히 작성할 수 있습니다.

char c = 0;

ASCII 코드의 0은 null입니다.


답변

빈 공간을 남기지 않고 문자열의 문자를 바꾸려면 StringBuilder를 사용하여이를 수행 할 수 있습니다. 문자열은 Java에서 변경 불가능한 객체이므로 수정할 수 없습니다.

String str = "Hello";
StringBuilder sb = new StringBuilder(str);
sb.deleteCharAt(1); // to replace e character


답변

당신은 할 수 없습니다. “”포함하지 않는 문자열에 대한 리터럴 에는 문자. “빈 문자”(당신이 의미하는 바가 무엇이든)는 포함하지 않습니다.