2

我试图弄清楚如何将一个单词作为用户的输入,然后以不同的格式返回相同的字符串。

例如,输入“dog”需要显示为

呸呸呸
_
_

我只能使用 for 语句,而不是 if 语句......并且程序应该只有 2 个方法,第二个应该返回一个值。

我知道如何从用户那里获取输入,但是我对如何返回一个像上面那样格式化的字符串有点迷茫。

这是一个家庭作业问题,所以我不希望任何人只给我答案。我真的只是卡住了,不知道下一步该做什么。这是一个基本的 java 1 类,所以我不能使用任何太复杂的东西。

到目前为止,这是我未完成的代码。我知道它有很多问题>.<

    import java.util.Scanner;

    public class Lab06Edit {

       public static void main(String[] args ) {
          Scanner keyboard = new Scanner(System.in);
          System.out.print("Enter a word:  ");
          String input = keyboard.next();

       wordAngle(input);
       System.out.print("" + wordAngle(input));

    }

       public static String wordAngle(String word) {
          String result = "";
          for (int i=0; i<=input.length(); i++) {
             System.out.println(input.charAt(i)*i +"\n");
          return result;
          }     
       }
    }
4

2 回答 2

0

如果char与整数相乘,则 char 将转换为ASCII代码,结果将为integer. 你应该concat用 charString来产生你想要的结果。在下面查看您的预期输出代码:

 public class Lab06Edit {

    public static void main(String[] args) {
        Scanner keyboard = new Scanner(System.in);
        System.out.print("Enter a word:  ");
        String input = keyboard.next();
        wordAngle(input);
    }

    public static void wordAngle(String input) {
        for (int i = 0; i < input.length(); i++) {
            String result = "";
            for (int j = 0; j <= i; j++) {
                result += input.charAt(i);
            }
            System.out.println(result);
        }
    }
}
于 2013-09-29T16:11:19.383 回答
0

多次打印一封信

input.charAt(i)*i起初有点令人惊讶,但您正在尝试多个字母。不出所料,java 不喜欢这样,并在将字母相乘之前将其转换为数字。因此(在消除了一些错误之后) dog 的输入给出了输出。在某种程度上,这是 Java 的错误string + string

0      % d=100, 0*100=0

111    % 0=111 1*111=111

206    % g=103 2*103=206

如果你想多次打印一些东西,那么最简单的方法(不一定是最好的方法,但这毕竟是家庭作业)是把它放在一个 for 循环中,你可以使用 System.out.print 而不是 System.out 。 println 以避免提前行。在您的情况下,for 循环中的 for 循环。或者,您可以逐个构建一个字符串,并将+它们一起循环(仍然不是最好但更好)并返回该字符串以在 println 语句中打印。试一试,看看你是否能弄清楚,询问你是否需要更多提示。

数组长度

for (int i=0; i<=input.length(); i++)记住在 java 中一切都是零,所以如果某个东西的长度为 3,它的元素是 0,1,2。您当前的代码有 0,1,2,3。当您的代码到达神话元素 3 时,它会返回String index out of range异常。

小错误

您已将 return 语句放在 for 循环中,我认为是一个错误,并且您也已从使用变量名 word 更改为 input,我再次假设一个错字

于 2013-09-29T16:16:29.777 回答