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)+ " ");
    }
  }
}

这应该,如果你有 e 词(例如,,,"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++){

我还要说,由于您使用的是数组,因此用户可能会过早结束(保留其余的索引null,您应该考虑使用 anArrayList <String>来代替。

于 2013-01-14T21:35:20.567 回答