-6

所以我已经在这部分代码上工作了一段时间,我需要帮助。我需要使用子字符串垂直打印出用户输入。我想我已经很接近了,但我认为只需要一点小费。

         public static void method3(){
   System.out.print("Method 3"); 
 Scanner console = new Scanner(System.in);
  String height = console.nextLine(); 

   System.out.println(" Type in a word to be printed vertically!");
  String str = console.nextLine();

  System.out.println(str.charAt(height) + " ");   
4

2 回答 2

2

简单的选择是-

System.out.println(str.charAt(height) + " ");   

或者您可以转换为 char 数组并遍历它。

于 2013-04-10T03:02:35.237 回答
1

String.substring()是一种方法,而不是一个字段,这意味着您需要调用str.substring()而不是简单地调用str.substring. 此外, substring 方法接受参数 - 您必须以字符串中哪些索引的形式告诉它您想要的特定子字符串。str.substring(0, 2)将打印字符 0 和 1(不包括上限)。为了你的目的,str.substring(height, height+1)会工作......

如果您必须使用子字符串。

我建议使用str.charAt(height),它可以实现相同的目标。

编辑(基于您的编辑):1)您将高度定义为字符串,然后调用 str.charAt(height)。charAt() 方法接受一个 int 参数 - 如果你给它 6,它会给你字符串中索引 6 处的字符(即第七个字母)。知道了这一点,将 String 作为参数传递是没有任何意义的,不是吗?

2)你仍然需要一个循环来完成这个。就像是:

String str = console.nextLine();
     for (int height = 0; height < str.length; height++) {            
         System.out.println(str.charAt(height);   
     }

那有意义吗?如果我需要引导您了解我们在这方面所做的工作,请告诉我。

于 2013-04-10T03:02:46.867 回答