2014-04-22 4 views
1

문자열에서 ASCII char (11)을 제거하려고합니다. char (11)은 ''을 나타냅니다. 그러나 이것을 문자열 "" '로 추가하면 "' '"이됩니다.문자열에서 ASCII 문자 제거

실제 문자가 'ASCII'문자인지 어떻게 확인할 수 있습니까?

코드는 다음과 같습니다

public static void main(String[] args) { 
    StringBuilder stringBuilder = new StringBuilder("' 'The name is stack"); 
    int value = 11; 
    char data = (char) value; // in debug mode this is ' ' 
} 

나는 인덱스 0에있는 경우 문제는 문자열 " ''" " '"대신'임을 경우이 ASCII의 문자를 삭제합니다. 어떻게 이것이 가능할 수 있습니까?

출력을 원합니다. 이름이 스택입니다.

+0

http://ascii.cl/에 따른 것입니다. ASCII에서 char (11)을 문자열에서 제거 할 수 있습니까? 그렇다면 어떻게? – user3189663

+1

내가 잘못하지 않으면 ASCII 문자 11은 VT (수직 탭)입니다. – TheLostMind

+0

맞습니다. 당신 말이 맞아요. – user3189663

답변

2

당신은 그래서 32 아래 아무것도 드롭 인덱스 (32)에서,

if (stringBuilder.charAt(0) == data) { 
    stringBuilder.deleteCharAt(0); 
} 
+0

나는 이미 이것을 시도했지만 charAt (0)은 ""대신 ""입니다. – user3189663

+0

2 문자가 실제로 일치합니까? 다음은 제거되는 캐릭터를 보여주는 [데모] (http://ideone.com/homZnD)입니다 – Reimeus

+0

문자가 일치하지 않습니다. stringBuilder.deleteCharAt (0)는 실행되지 않습니다. – user3189663

0

내가 처음 "인쇄"문자는 공간의 기호라고 생각 할 수있는 당신도 잘해야합니다. 전체 문자열을 커버하기 위해 확장해야합니다.

문자를 int 값으로 할당 할 수 있으며 그림은 here과 같습니다.

 char[] chars = new char[4]; 
     chars[0] = 31; // character for unit separator 
     chars[1] = 65; // A 
     chars[2] = 66; // B 
     chars[3] = 67; // C 

     // build a string from the printable and unprintable chars 
     String s = new String(chars); 

     // check length and how it prints out 
     System.out.println("[" + s +"]"); 
     System.out.println(s.length()); 

     // if char at index 0 < 32, drop it 
     if(s.charAt(0) < 32) 
      s = s.substring(1, s.length()); 

     // prints like previously, but length is now smaller 
     System.out.println("[" + s +"]"); 
     System.out.println(s.length()); 
+0

32는 무엇을 나타내는가? – user3189663

+0

32는 단지 공백이므로 "". char 값이 그 아래에 있으면 보통 "인쇄 가능"하지 않습니다. ascii 문자 표에 대한 내 대답의 링크를 참조하십시오. – Zavior

+0

char (11)은 사용자가 첨부 한 링크의 수직 탭입니다. 세로 탭을 문자열에서 어떻게 제거 할 수 있습니까? – user3189663