2012-04-02 4 views
0
public static String doCensor(String toCensor) 
{   
    Object[] aobj; 
    int l = (aobj = toCensor.toCharArray()).length; //THIS LINE OF CODE IS THE PROBLEM 

私はオブジェクトに変換したい理由は、私は、後に特定の文字または文字列にキャストすることができます。これを行う簡単な方法はありますか?Javaの文字配列をオブジェクト配列に変換しますか?出来ますか?

鋳造例:

char c = (char) aobj[j]; 
String word = (String) aobj[k]; 
+0

これは可能ですが、ループを記述することが必要です。 –

+0

例はありますか?私は無名です。 – Trey

+2

文字列が必要なときに文字配列を使い、 'Character.toString(char)'を使うのはなぜですか? – trutheality

答えて

1

正しい方法はchar[]toCharArrayから取得し、Stringが必要な場合はCharacter.toString(char)を使用することです。 charStringにキャストすることはできません。

+0

うまく働いていただきありがとうございます。 – Trey

1

charObject表現がCharacterあります。 CharacterStringにキャストすることはできません。 Stringcharから取得する最も簡単な方法は、空のStringString s = ch + "";と連結することです。または、Stringで始まっているので、String#substringを使用して、1 charの部分文字列を作成できます。

+0

文字を文字列に変換するのが最も簡単で効率的な方法でもありません。 – trutheality

+1

@trutheality私は効率性について話していませんでした。私は単純さについて話していました。これは 'char'から' String'を得る最も簡単な方法です。これを行う他の方法があります( 'String#valueOf'と' Character#toString'が頭に浮かぶ最初の2つですが)、どちらもJavaの初心者にとっては分かりません。 – Jeffrey

+0

多分、私の心の中で、非数字を加えることは、「ああ、このキャラクターは* *文字列*に変換されている」よりも直感的ではないという意見があります。 – trutheality

1

文字列を配列に変換する必要はありません。あなたは、直接文字列から文字を抽出することができます。

char c=toCensor.charAt(j); 
1
String toCensor = "dog"; 
    char characters[] = new char[toCensor.length()]; 

    for(int i = 0; i < toCensor.length(); i++) { 
       characters[i] = toCensor.charAt(i); 
    } 

    for(int i = 0; i < characters.length; i++) { 
    System.out.print(characters[i] + " "); 
    } 

をこの文字列にtoCensorを離れて破壊し、文字の配列に格納します。その後、d o gを出力します。 私はあなたの求めているがcharがプリミティブ型で、StringがObjectであるかどうかはわかりません。私はほとんどあなたがオブジェクトにチャーをキャストすることはできませんposexです。プリミティブ型intは整数を指定できますが、整数種類の正方形のように、int型にすることはできません理由です

は長方形であるが、長方形、正方形ではありません。 また、intにはメソッドはありませんが、オブジェクト型Integerでは行います。 たとえばInteger.toString(5)またはString.format("")

これは役に立ちましたと思います。

関連する問題