有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

如何在Java字符类中表示空字符

我想在Java中将一个空字符表示为字符串中的""

像那样char ch = an empty character;

实际上我想在不留空格的情况下替换一个字符

我认为理解这意味着什么就足够了:没有字符,甚至没有空格


共 (6) 个答案

  1. # 1 楼答案

    如果希望在不留下任何空白的情况下替换字符串中的字符,则可以使用StringBuilder实现这一点。字符串在java中是不可变的对象,您不能修改它

    String str = "Hello";
    StringBuilder sb = new StringBuilder(str);
    sb.deleteCharAt(1); // to replace e character
    
  2. # 2 楼答案

    由于chars可以表示为整数(ASCII码),您只需编写:

    char c = 0;
    

    ASCII码中的0是null

  3. # 3 楼答案

    空字符串是char[]上没有元素的包装器。您可以有一个空的char[]。但是不能有一个“空的”char。与其他原语一样,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);
    
    }
    
  4. # 4 楼答案

    char表示正好一个字符。不能为此类型分配零个字符

    这意味着没有char值String.replace(char, char)将返回长度不同的字符串

  5. # 5 楼答案

    由于Character是从Object派生的类,所以可以将null指定为“实例”:

    Character myChar = null;
    

    问题已解决;)

  6. # 6 楼答案

    您可以分配'\u0000'(或0)。 为此,请使用^{}

    Character ch = Character.MIN_VALUE;