2013-04-18 77 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個字符,就像構想一樣。