2017-02-11 84 views
1

我寫了一個包含靜態方法集合的類。我的一個靜態方法接受一個字符串作爲參數。我應該向John Mike Baldibanga等方法發送一個名稱,它應該返回一個只包含前兩個名字和全名的首字母的字符串。如何修改void class方法,使其返回所需信息

因此,如果我將John Mike Baldibanga發送給我的方法,我希望它返回 J M Baldibanga。

到目前爲止,我只能弄清楚如何通過使用void來獲得該方法的工作方式。

public static void Theinitials(String z){ 

     String s []= z.split(" "); 

       System.out.print(s[0].charAt(0) + " "); 

       System.out.print(s[1].charAt(0)+ " "); 
      System.out.println(s[2]); 


    } 

這是我用來調用目前的方法:

String.Theinitials(名);

+0

獲取println的方法。相反,返回一個字符串,並讓調用代碼中有printlns。 –

+2

爲什麼該方法有必要使用'void'返回類型? 'String'返回類型適用於此。 – Sangharsh

+0

我試過,但它不起作用。我嘗試寫入字符串b = s [0] .charAt(0)+「」+ s [1] .charAt(0)+「」+ s [2];返回b;但它沒有工作 – theredfox24

回答

5

它應該返回一個字符串

所以返回的String代替void和替代System.out.print ING,建立一個單一的String resultreturn是:

public static String theInitials(String z){ 
    String s []= z.split(" "); 
    String result = s[0].charAt(0) + " " + s[1].charAt(0) + " " + s[2]; 
    return result; 
} 

然後打印稍後如果這是你需要做的事情:

String initials = WhatEverYourClassIsCalled.theInitials(name); 
System.out.println(initials); 

String.Theinitials(name);看起來您的班級名稱爲String。這可能會導致你一些頭痛,我會建議重新命名它。

另請注意,我如何調用方法theInitials,這稱爲lowerCamelCase,在Java中命名方法和變量時,這只是good practice

+0

好吧,現在我知道它爲什麼不工作我已經進入了字符串b == s [0] .charAt(0)+「」+ s [1] .charAt(0)+「」+ s [2];但我忘記了將方法從void更改爲String。如果沒有任何聰明人在做什麼,我會做什麼?不知道...但感謝你幫助了一大堆 – theredfox24

+0

樂意提供幫助,不要忘記點擊複選標記接受答案和灰色向上箭頭投票。 – weston

+1

我的朋友韋斯頓先生,它已經完成! – theredfox24

1

void方法是一種沒有返回類型的方法。我認爲你正試圖返回一個字符串,簡單地改變方法的返回類型,像這樣:

public static String Theinitials(String z){ 

    String s []= z.split(" "); 
    String str; 

    str = (s[0].charAt(0) + " "); 
    str = (str + (s[1].charAt(0)+ " ")); 
    str = (str + s[2]); 

    return str; 
} 

這應該使將被做出來你會出口到控制檯的字符串的字符串str。您然後返回該字符串。

1

到目前爲止,我只能通過使用void來弄清楚如何使方法工作到 。

void根本不應該返回任何值。

如果您確實想通過使用void來了解一個工作方法,請在該類中聲明一個私有靜態成員並指定要返回給此靜態變量的值。 [儘管這不是強烈推薦,但因爲您問了]

最好的選擇是讓您的方法改爲返回String