-1

我目前正在学习 Java 编程入门课程,并且一直在设置以下练习:

编写一个程序,可以从字符串数组中提出一系列问题。它应该在问题下方打印一行星号,星号行与打印在其上方的问题的长度相同。

以下是我目前编写的代码。starLineExercise 类具有一个名为 starLine 的方法,我在下面开始编写它。starLine 方法需要打印与前面每个 System.out.println 命令中的字符一样多的“*”。

我尝试为每个问题创建一个字符串对象,然后对其进行计数,并将其放入 for 循环中,但 Eclipse 给我一个错误,提示无法解析计数变量。

import java.util.Scanner ;
public class starLineExercise{
public static void main(String[] args){
    Scanner sc = new Scanner (System.in);
    System.out.println ("Please enter your name");
    starLine();
    String name = sc.nextLine();
    starLine();
    System.out.println("Pleae enter your age");
    starLine();
    int age = sc.nextInt();
    System.out.println("Your name is " + name + " and your age is " + age);

}

public static void starLine(){
    for (int i = 0; i < 20; i++);
        System.out.println("*");
}
System.out.println("");
 }
}
4

2 回答 2

1

创建一个既可以打印问题又可以开始的方法。

 public void printFormattedQuestion(String question);
     System.out.println(question);
     for(int i=0;i<question.length();i++) {
         System.out.print("*");
     }
     System.out.println();
 }

所以基本上你使用length()的是由 type 对象提供的方法String,这将返回问题中的字符数,这样你就可以在你的 for 循环中使用它来打印问题中包含字符的尽可能多的星星。

于 2013-10-06T13:23:36.810 回答
1

您需要更改代码中的一些内容:

  1. String在打印之前将您的问题保存在 a 中。
  2. 更改您的starLine()方法以获取参数,您可以在其中传递String.
  3. 更改方法中的硬编码20starLine()使用此参数。
于 2013-10-06T13:24:04.290 回答