2014-10-14 3 views
-1

Как мне вызвать метод convertName в main? Когда я пробовал другие способы, он придумал ошибку не может ссылаться на нестационарный метод из статической области.Как мне вызвать метод из основного

/* 
This program will take a name string consisting of EITHER a first name followed by a last name 
(nonstandard format) or a last name followed by a comma then a first name (standard format). 
Ie. “Joe Smith” vs. “Smith, Joe”. This program will convert the string to standard format if 
it is not already in standard format. 
*/ 
package name; 

public class Name { 

    public static void main(String[] Args){ 
      boolean flag1 = hasComma ("Alex Caramagno"); 

    } 
    public static boolean hasComma(String name) { 
      // indexOf will return -1 if a comma is not found 
      return name.indexOf(',') >= 0; 
    } 

    public String convertName(String name) { 
      if (hasComma(name)) { 
        return name; 
      } 

      int index = name.indexOf(' '); 
      String first = name.substring(0, index); 
      String last = name.substring(index+1); 
      String convertedName = last + ", " + first; 
      return convertedName; 
    } 

    } 
+1

Make '' convertName' в static' метод. – August

+2

@ Август В то время как это сработает, оно не дает никакого представления о том, почему * он работает. Во всяком случае, это дубликат одного из многих, многих аналогичных тематических вопросов ... – JonK

ответ

3

Поскольку метод не static, вам нужен экземпляр Name.

String str = "some string"; 
new Name().convertName(str); 

Или изменить

public String convertName(String name) { 

в

public static String convertName(String name) { 

Тогда в main()

String str = "some string"; 
convertName(str); // <-- calling a static method doesn't need an instance. 
Смежные вопросы