2013-04-18 169 views
0

我是java的初学者,我想寻求一些帮助。在垂直位置循环

编写一个名为vertical的方法,接受String作为参数,并在单独的行上打印字符串的每个字母。例如,垂直调用(“hey now”)应产生以下输出:

h 
e 
y 

n 
o 
w 

这就是我所做的。

public void vertical(String x){ 
    char OneByOne='x'; 
     for(int i=0;i<=x.length()-1;i++){ 
      OneByOne=x.charAt(i); 
     } 
     System.out.print(OneByOne); 
} 

当我要求它时,它给了我w。 但我很困惑。我创建一个char容器并调用位置0.并通过它循环。不应该从0开始。0 从h开始。而不是给我一个w?

另外,我应该使用public void vertical(String x){ or public static void vertical(String x){?他们给我相同的输出。我去研究静态,他们告诉我静态意味着单一。这是什么意思?

+1

Move System.out.print(OneByOne);进入循环并更改println – rarry

+2

并使用'println'而不是'print' –

+0

我终于看到它了。太累了练习。我必须在循环内部移动,因为它会打印每个值吗?如果不是,它会继续循环,直到最后一个字符是w并打印它是正确的? – user2179615

回答

1

您不在循环内打印。另外,使用println。

0

您应该改用prinln打印的

System.out.println(OneByOne); 

static关键字意味着你能够调用此方法,而无需你的类的实例。

+0

我的班级实例?去研究那个。你的意思是公共班级自行车{?意思是我不需要创建公共班级自行车,我可以直接调用方法吗? – user2179615

+0

是的,你可以调用Bicycle.methodName(); – Ankit

1

您需要在每次迭代中打印字符。

public void vertical(String x){ 
    char OneByOne='x'; 
     for(int i=0;i<=x.length()-1;i++){ 
      System.out.println(x.charAt(i)); 
     } 

} 
2
public void vertical(String x){ 
    int count = x.length(); 
    for(int i=0;i<count;i++){ 
     System.out.println(x.charAt(i)); 
    }  
} 
1

除了其他答案:你也可以使用一个for each循环:

public static void vertical(String x) { 
    for (char OneByOne : x.toCharArray()) { 
     System.out.println(OneByOne); 
    } 
} 
1

我用更传统的风格在这里:

public void vertical(String x){ 
    for(int i = 0; i < x.length(); i++){ 
     char oneByOne = x.charAt(i); 
     System.out.println(oneByOne); 
    } 
} 

小于长度,io小于等于长度 - 1.

本地声明。 Vars以小写字母开头。

其余的都很好。 charAt(i)给出了第i个字符,就像构想一样。