0

配列からの適切な印刷に問題があります。

IF(A) では、すべての入力文字をそのようにフォーマットする必要があります。

キャットドッグなど

しかし、以下は私が書いた最後の単語をフォーマットするだけです。私は理由を推測しているだけで、それを修正する方法がわかりません。

その部分は :** でマークされています。

String type;
String word;
String words[]=new String[100];
int i=0;

String k="end";
System.out.println("Type word: ");
word=sc.next();

while(wyraz.compareToIgnoreCase(k)!=0){     
    words[i]=wyraz;
    i=i+1;
    word=sc.next();
}   
words[i]=k;

System.out.println("Choose type A,B,C:");
type=sc.next();



**if(type.equals("A")){
    int length=word.length();

    for(int z=0;z<length;z++){
    System.out.print(words[z]=""+word.charAt(z));
    System.out.print(" ");
}**


if(type.equals("B")){
    int length=i+1;

    for(int x=0;x<length;x++){
        System.out.print(words[x]);
        System.out.println();   
    }
}

if(type.equals("C")){

    int length=i+1;
    int j;

    for(i=0; i<length; i++) {
        for(j=0; j<i; j++) {
            System.out.print("   ");
            System.out.print(words[j]);
            System.out.println();
        }
    }
}
4

1 に答える 1

3

私が知る限り、すべてのインデックスを繰り返し処理しているわけではありません

if(type.equals("A")){
  //iterate through all words except for "end"
  for (int x = 0; x < i; x++){
    //iterate through specific word's characters 
    for(int z=0;z<words[x].length();z++){
      //actually print
      System.out.print(words[x].charAt(z)+ " ");
    }
  }
}

これは、単語 (例: "cat""dog""end") がある場合、 として出力され"c a t d o g"ます。「en d」も含めたい場合は、変更します

for (int x = 0; x < i; x++){

for (int x = 0; x <= i; x++){

また、配列を使用しているため、ユーザーが途中で終了する可能性があることも言います (残りの indexs を残して、代わりにnullを使用することを検討する必要がありますArrayList <String>

于 2013-01-14T21:35:20.567 に答える