How to represent empty char in Java Character class

后端 未结 16 780
遥遥无期
遥遥无期 2020-11-29 02:11

I want to represent an empty character in Java as \"\" in String...

Like that char ch = an empty character;

Actually I want to rep

相关标签:
16条回答
  • 2020-11-29 02:51

    If you want to replace a character in a String without leaving any empty space then you can achieve this by using StringBuilder. String is immutable object in java,you can not modify it.

    String str = "Hello";
    StringBuilder sb = new StringBuilder(str);
    sb.deleteCharAt(1); // to replace e character
    
    0 讨论(0)
  • 2020-11-29 02:52

    You can't. "" is the literal for a string, which contains no characters. It does not contain the "empty character" (whatever you mean by that).

    0 讨论(0)
  • 2020-11-29 02:53

    I was looking for this. Simply set the char c = 0; and it works perfectly. Try it.

    For example, if you are trying to remove duplicate characters from a String , one way would be to convert the string to char array and store in a hashset of characters which would automatically prevent duplicates.

    Another way, however, will be to convert the string to a char array, use two for-loops and compare each character with the rest of the string/char array (a Big O on N^2 activity), then for each duplicate found just set that char to 0..

    ...and use new String(char[]) to convert the resulting char array to string and then sysout to print (this is all java btw). you will observe all chars set to zero are simply not there and all duplicates are gone. long post, but just wanted to give you an example.

    so yes set char c = 0; or if for char array, set cArray[i]=0 for that specific duplicate character and you will have removed it.

    0 讨论(0)
  • 2020-11-29 02:54

    An empty String is a wrapper on a char[] with no elements. You can have an empty char[]. But you cannot have an "empty" char. Like other primitives, a char has to have a value.

    You say you want to "replace a character without leaving a space".

    If you are dealing with a char[], then you would create a new char[] with that element removed.

    If you are dealing with a String, then you would create a new String (String is immutable) with the character removed.

    Here are some samples of how you could remove a 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);
    
    }
    
    0 讨论(0)
提交回复
热议问题