""文字列のようにJavaで空の文字を表現したい ...
そのように char ch = an empty character;
実はスペースを空けずにキャラを入れ替えたいです。
私はこれが何を意味するかを理解するのに十分かもしれないと思います:文字もスペースもありません。
String.replace(' ', EMPTY_CHARACTER)同じ効果を出したいのではないかと思いますString.replace(" ", "")。つまり、すべてのスペースを削除します。
""文字列のようにJavaで空の文字を表現したい ...
そのように char ch = an empty character;
実はスペースを空けずにキャラを入れ替えたいです。
私はこれが何を意味するかを理解するのに十分かもしれないと思います:文字もスペースもありません。
String.replace(' ', EMPTY_CHARACTER)同じ効果を出したいのではないかと思いますString.replace(" ", "")。つまり、すべてのスペースを削除します。
回答:
割り当てることができます'\u0000'(または0)。このためには、を使用しますCharacter.MIN_VALUE。
Character ch = Character.MIN_VALUE;
'\0'正確に意味ですか?@AVD
char正確に1文字を意味します。このタイプにゼロ文字を割り当てることはできません。
つまりString.replace(char, char)、異なる長さの文字列を返すchar値はありません。
CharacterはObjectから派生したクラスなので、「インスタンス」としてnullを割り当てることができます。
Character myChar = null;
問題が解決しました ;)
空の文字列は、char[]要素のないのラッパーです。空にすることができますchar[]。ただし、「空」にすることはできませんchar。他のプリミティブと同様に、aにcharは値が必要です。
「スペースを空けずにキャラクターを入れ替えたい」と言います。
を処理している場合は、その要素を削除してchar[]新しいchar[]を作成します。
を処理している場合は、文字を削除して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);
}
chars整数(ASCII-コード)として表すことができ、あなたは簡単に書くことができます。
char c = 0;
ASCIIコードの0はnullです。
char)は、UnicodeコードポイントU + 0000の完全なUTF-16エンコーディングです。他の文字セットや文字エンコードとの類似性は関係ありません。UTF-16はJavaが使用するものです。
空のスペースを残さずに文字列の文字を置き換える場合は、StringBuilderを使用してこれを実現できます。文字列はJavaの不変オブジェクトであり、変更できません。
String str = "Hello";
StringBuilder sb = new StringBuilder(str);
sb.deleteCharAt(1); // to replace e character
これを探していました。設定するだけでchar c = 0;完璧に動作します。それを試してみてください。
たとえば、Stringから重複する文字を削除しようとしている場合、1つの方法は、文字列をchar配列に変換し、重複を自動的に防止する文字のハッシュセットに格納することです。
ただし、別の方法は、文字列をchar配列に変換し、2つのforループを使用して、各文字を残りの文字列/ char配列(N ^ 2アクティビティのBig O)と比較し、重複が見つかった場合その文字を0に設定するだけです。
... new String(char[])結果のchar配列を文字列に変換し、sysoutを出力に使用します(これはすべてjava btwです)。ゼロに設定されたすべての文字が存在せず、すべての重複がなくなっていることがわかります。長い投稿ですが、例を挙げたいだけです。
はいはい、char c = 0;またはchar配列の場合はcArray[i]=0、その特定の重複文字を設定すると、削除されます。
Javaでは空の文字リテラルとして何もありません。つまり、「」は空の文字列リテラルを意味する「」とは異なり、意味がありません。
空の文字リテラルを表すのに最も近いのは、長さがゼロの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 c = null;、jvmがボックス化解除しようとするとNPEがスローされるため、ソリューションとしてはあまり好きではありません。第二に、nullは基本的に何も参照型なしへの参照です。ここでは、nullを可能な値として受け入れないプリミティブ型を扱っています。
文字列、たとえばstrで、OPが文字のすべての出現箇所、たとえば 'x'を空の文字 ''に置き換えたいと仮定して、次のように使用します。
str.replace("x", "");
char ch = Character.MIN_VALUE;
上記のコードchは、charが持つことができる最小値(つまり\u0000)で変数を初期化します。
既存のキャラクターのみ再利用できます。たとえば、\0これを文字列に入れると、1文字の文字列になります。
あなたがする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キャラクターが本当にないそのA文字を示し、多くの特殊文字の一つであるが、それはまだ文字そのものです。
使用する\b2番目のパラメータで演算子(バックスペースエスケープ演算子)
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();
}
説明のために、はい、置き換えるためのnull文字はありませんが、このように文字を削除できます。私はその古い質問を知っていますが、このコードは一部の人に役立つかもしれないので、この回答を投稿しています。