我正在尝试从String中删除ASCII char(11)。我可以看到char(11)代表''。但是,当将其添加为字符串“''”时,结果是“''”。
如何检查实际是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 :(得分:2)
你可以做到
if (stringBuilder.charAt(0) == data) {
stringBuilder.deleteCharAt(0);
}
答案 1 :(得分:0)
我认为第一个“可打印”字符是空格符号,位于索引32处。所以将任何东西都降到32以下,你应该没问题。应该是微不足道的,以涵盖整个字符串。
您可以将字符指定为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());