Answers:
您可以分配'\u0000'(或0)。为此,请使用Character.MIN_VALUE。
Character ch = Character.MIN_VALUE;
'\0'什么意思?@AVD
char表示一个字符。您不能为该类型分配零个字符。
这意味着没有char值String.replace(char, char)会返回长度不同的字符串。
由于Character是派生自Object的类,因此可以将null分配为“ instance”:
Character myChar = null;
问题解决了 ;)
空字符串是char[]不包含任何元素的包装。你可以有一个空的char[]。但是您不能拥有“空” char。像其他基元一样,a char必须具有一个值。
您说要“在不留空格的情况下替换字符”。
如果要处理char[],则可以创建一个char[]删除了该元素的新对象。
如果您正在处理String,那么您将创建一个新的String(字符串是不可变的)删除字符。
以下是一些有关如何删除字符的示例:
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。
charUnicode代码点U + 0000的完整UTF-16编码为UTF-16代码单元(),0 。与其他字符集或字符编码的任何相似性均无关紧要。Java使用UTF-16。
我一直在寻找。只需设置char c = 0;和即可完美运行。试试吧。
例如,如果您尝试从String中删除重复的字符,则一种方法是将字符串转换为char数组并存储在字符的哈希集中,这将自动防止重复。
但是,另一种方法是将字符串转换为char数组,使用两个for循环,然后将每个字符与其余的string / char数组进行比较(N ^ 2活动为Big O),然后对找到的每个重复项进行比较只需将该字符设置为0。
...并用于new String(char[])将生成的char数组转换为字符串,然后使用sysout进行打印(这全部是java btw)。您将观察到所有设置为零的字符根本就不存在,所有重复项都消失了。长篇文章,但只想举一个例子。
所以是设置,char c = 0;或者对于字符数组,设置cArray[i]=0为为该特定重复字符,则将其删除。
在Java中,没有什么可以作为空字符文字,换句话说,“”与“”没有任何含义,意味着“空的String文字。
表示空字符文字的最接近方法是通过零长度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的最小值。
我也不喜欢 Character c = null;这种解决方案,主要是因为jvm如果尝试取消装箱将抛出NPE。其次,null基本上是对无引用类型的引用,这里我们处理的是原始类型,该类型不接受null作为可能的值。
假设在字符串中假设为str,OP希望将所有出现的字符“ x”替换为空字符“”,然后尝试使用:
str.replace("x", "");
char ch = Character.MIN_VALUE;
上面的代码将ch使用char可以具有的最小值(即\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
嘿,我总是为通常不在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();
}
为了进行解释,是的,没有可替换的空字符,但是您可以像这样删除字符。我知道这是一个老问题,但我发布了此答案,因为此代码可能对某些人有帮助。