Java ""에서 String 과 같이 빈 문자를 나타내고 싶습니다 .
그렇게 char ch = an empty character;
사실은 공백을 남기지 않고 문자를 바꾸고 싶습니다.
나는 이것이 의미하는 바를 이해하는 것으로 충분할 것이라고 생각합니다.
String.replace(' ', EMPTY_CHARACTER)과 같은 효과가 String.replace(" ", ""). 즉, 모든 공백을 제거하십시오.
Java ""에서 String 과 같이 빈 문자를 나타내고 싶습니다 .
그렇게 char ch = an empty character;
사실은 공백을 남기지 않고 문자를 바꾸고 싶습니다.
나는 이것이 의미하는 바를 이해하는 것으로 충분할 것이라고 생각합니다.
String.replace(' ', EMPTY_CHARACTER)과 같은 효과가 String.replace(" ", ""). 즉, 모든 공백을 제거하십시오.
답변:
할당 할 수 있습니다 '\u0000'(또는 0). 이를 위해 Character.MIN_VALUE.
Character ch = Character.MIN_VALUE;
'\0'정확히 말인가요? @AVD
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입니다.
char)은 유니 코드 코드 포인트 U + 0000에 대한 완전한 UTF-16 인코딩입니다. 다른 문자 집합이나 문자 인코딩과의 유사성은 관련이 없습니다. UTF-16은 Java가 사용하는 것입니다.
빈 공간을 남기지 않고 문자열의 문자를 바꾸려면 StringBuilder를 사용하여이를 수행 할 수 있습니다. 문자열은 Java에서 변경 불가능한 객체이므로 수정할 수 없습니다.
String str = "Hello";
StringBuilder sb = new StringBuilder(str);
sb.deleteCharAt(1); // to replace e character
나는 이것을 찾고 있었다. 간단히 설정하면 char c = 0;완벽하게 작동합니다. 시도 해봐.
예를 들어, String에서 중복 문자를 제거하려는 경우 한 가지 방법은 문자열을 char 배열로 변환하고 자동으로 중복을 방지하는 문자의 해시 세트에 저장하는 것입니다.
그러나 또 다른 방법은 문자열을 문자 배열로 변환하고 두 개의 for 루프를 사용하고 각 문자를 나머지 문자열 / 문자 배열 (N ^ 2 활동의 Big O)과 비교 한 다음 발견 된 각 중복에 대해 그 문자를 0으로 설정하십시오 ..
... 그리고 new String(char[])결과 char 배열을 문자열로 변환 한 다음 sysout을 사용하여 인쇄합니다 (모두 java btw 임). 0으로 설정된 모든 문자가 단순히 거기에없고 모든 중복이 사라진 것을 볼 수 있습니다. 긴 게시물이지만 예제를 제공하고 싶었습니다.
그래서 예를 설정 char c = 0;하거나 char 배열의 경우 cArray[i]=0특정 중복 문자에 대해 설정 하면 제거됩니다.
자바에서는 빈 문자 리터럴 만큼 아무것도 없습니다. 즉, ''는 빈 문자열 리터럴 을 의미하는 ""와 달리 의미가 없습니다.
빈 문자 리터럴을 나타내는 가장 가까운 방법은 길이가 0 인 char []입니다.
char[] cArr = {}; // cArr is a zero length array
char[] cArr = new char[0] // this does the same
String 클래스를 참조하면 기본 생성자가 다음을 사용하여 빈 문자 시퀀스를 만듭니다. new char[0]
또한 Character.MIN_VALUE를 사용하는 것은 실제로 빈 문자가 아니라 문자 유형의 가장 작은 값이기 때문에 올바르지 않습니다.
나는 또한 Character c = null;jvm이 상자를 풀려고하면 NPE를 던지기 때문에 주로 해결책으로 좋아하지 않습니다 . 둘째, null은 기본적으로 아무것도 wrt 참조 유형에 대한 참조이며 여기서는 가능한 값으로 null을 허용하지 않는 기본 유형을 다루고 있습니다.
문자열에서 str이라고 가정하면 OP는 'x'와 같은 모든 문자를 빈 문자 ''로 바꾸고 싶어합니다.
str.replace("x", "");
char ch = Character.MIN_VALUE;
위의 코드 ch는 문자가 가질 수있는 최소값 (예 :)으로 변수 를 초기화합니다 \u0000.
기존 캐릭터 만 재사용 할 수 있습니다. 예를 들어 \0이것을 문자열에 넣으면 한 문자가있는 문자열이 생깁니다.
당신이 char할 때 그런 것을 원한다고 말해
String s =
char ch = ?
String s2 = s + ch; // there is not char which does this.
assert s.equals(s2);
대신해야 할 일은
String s =
char ch = MY_NULL_CHAR;
String s2 = ch == MY_NULL_CHAR ? s : s + ch;
assert s.equals(s2);
it not worked? 컴파일되지 않는다는 뜻입니까? 이 경우에는 char ch = '\0';또는char ch = 0;
nul문자가 전혀 없습니다 자사의 문자를 나타내는 많은 특수 문자 중 하나이지만, 여전히 문자 자체입니다.
사용 \b두 번째 매개 변수에 연산자 (백 스페이스 이스케이프 연산자)
String test= "Anna Banana";
System.out.println(test); //returns Anna Banana<br><br>
System.out.println(test.replaceAll(" ","\b")); //returns AnnaBanana removing all the spaces in the string
Hey 나는 항상 일반적으로 Java에서 구현되지 않는 사용자 정의 항목에 대한 메서드를 만듭니다. 다음은 String Fast에서 문자를 제거하기 위해 만든 간단한 방법입니다.
public static String removeChar(String str, char c){
StringBuilder strNew=new StringBuilder(str.length());
char charRead;
for(int i=0;i<str.length();i++){
charRead=str.charAt(i);
if(charRead!=c)
strNew.append(charRead);
}
return strNew.toString();
}
설명을 위해 대체 할 null 문자는 없지만 이와 같이 문자를 제거 할 수 있습니다. 나는 오래된 질문을 알고 있지만이 코드가 일부 사람들에게 도움이 될 수 있기 때문에이 답변을 게시하고 있습니다.