如何在Java Character类中表示空字符
我想在Java中将empty character
表示为""
…
像那个char ch = a empty character;
其实我想replace一个字符而不留空间。
我认为这可能足以理解这意味着什么: no character not even space
。
您可以分配'\u0000'
(或0)。 为此,请使用Character.MIN_VALUE
。
Character ch = Character.MIN_VALUE;
char
意味着一个字符。 您不能将零个字符分配给此types。
这意味着没有字符值的String.replace(char, char)
会返回一个不同长度的string。
由于Character是派生自Object的类,因此可以将null指定为“instance”:
Character myChar = null;
问题解决了 ;)
一个空string是一个char[]
没有元素的包装。 你可以有一个空的char[]
。 但是你不能有一个“空”的char
。 像其他原始图一样, char
必须有一个值。
你说你想“不留空间地replace一个angular色”。
如果你正在处理一个char[]
,那么你将创build一个新的char[]
,并删除该元素。
如果你正在处理一个String
,那么你将创build一个新的String
(string是不可变的),并删除该字符。
下面是一些如何删除char的示例:
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); }
如果你想replace一个string中的字符而不留下任何空的空间,那么你可以通过使用StringBuilder来实现这一点。 string是java中不可变的对象,你不能修改它。
String str = "Hello"; StringBuilder sb = new StringBuilder(str); sb.deleteCharAt(1); // to replace e character
你不能。 “”是string的文字,不包含任何字符。 它不包含“空白字符”(不pipe你是什么意思)。
在java中没有什么是空字符 ,换句话说,''没有意义,不像“”,这意味着一个空的string文字
代表空字符字面值的最接近的是通过零长度char [],如下所示:
char[] cArr = {}; // cArr is a zero length array char[] cArr = new char[0] // this does the same
如果引用String类,则其默认构造函数使用new char[0]
创build一个空字符序列,
此外,使用Character.MIN_VALUE是不正确的,因为它不是真正的空字符,而是types字符的最小值。
我也不喜欢Character c = null;
作为一个解决scheme,主要是因为如果jvm试图解开它,它会抛出NPE。 其次,null基本上是对引用types的引用,在这里我们正在处理不接受null作为可能值的原始types。
您只能重新使用现有的angular色。 例如\0
如果你把它放在一个string中,你将会得到一个带有一个字符的string。
说你想要一个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);
在第二个参数中使用\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
这是我如何做到的。
char[] myEmptyCharArray = "".toCharArray();
char ch = Character.MIN_VALUE;
上面的代码将使用char可以拥有的最小值初始化variablesch
(即\u0000
)。
作为chars
可以表示为整数(ASCII码),你可以简单地写:
char c = 0;
ASCII码中的0是null
。