2013-06-01 50 views
1

嗨,我是新来的Java编程。我想编写一个获取用户的名字和姓氏首字母的Java程序。我的代码是:Java编译器错误:不是一个声明

public class MyProgram { 
public void start() { 
    String name = getNameFromUser(); 
    char firstNameInitials = getInitials(name); 
    char surnameInitials = getInitials(name); 
    printInitials(firstNameInitials, surnameInitials); 
} 
private String getNameFromUser() { 
    System.out.print("Please enter your name: "); 
    String name = Keyboard.readInput(); 
    return name; 
} 
private char getInitials(String name) { 
    char firstNameInitials = name.charAt(0); 
    int indexOfSpace = name.indexOf(" "); 
    char surnameInitials = name.charAt(indexOfSpace + 1); 

    return firstNameInitials; surnameInitials; 
} 

private void printInitials(String firstNameInitials, String surnameInitials){ 
    System.out.print("your initials are: " + firstNameInitials +". " + surnameInitials +"."); 
} 
} 

我得到一个错误信息,我不知道这意味着什么:

Error: not a statement. 

的错误似乎是在第18行,在return语句。 我试图解决它,但失败了。任何建议,我该如何解决这个问题?

+3

什么,你认为这样做分号该怎么办? –

回答

6
return firstNameInitials; surnameInitials; 

你不能像这样返回多个字符。而是使用一个字符数组返回

例如,你可以返回这样

private char[] getInitials(String name) { 
    char firstNameInitials = name.charAt(0); 
    int indexOfSpace = name.indexOf(" "); 
    char surnameInitials = name.charAt(indexOfSpace + 1); 

    char[] result = {firstNameInitials, surnameInitials}; 
    return result; 
} 

,并调用它像

char[] a = getInitials(name); 
char firstNameInitials = a[0]; 
char surnameInitials = a[1]; 
+0

谢谢我该怎么做? – Adi

2

您可以在time.You只返回值不能返回不止一个值

创建一个包含您需要的多个值的类。在你的方法中,返回一个对象,该对象是该类的一个实例。

这样,您仍然返回一个对象。在Java中,无论返回多个对象,都不能返回多个对象。

public class TestVO { 

    private char irstNameInitials; 
    private char surnameInitials; 
    public char getIrstNameInitials() { 
     return irstNameInitials; 
    } 
    public void setIrstNameInitials(char irstNameInitials) { 
     this.irstNameInitials = irstNameInitials; 
    } 
    public char getSurnameInitials() { 
     return surnameInitials; 
    } 
    public void setSurnameInitials(char surnameInitials) { 
     this.surnameInitials = surnameInitials; 
    }  
} 


private TestVOgetInitials(String name) { 
char firstNameInitials = name.charAt(0); 
int indexOfSpace = name.indexOf(" "); 
char surnameInitials = name.charAt(indexOfSpace + 1); 

    TestVO vo = new TestVO(); 
    vo.setIrstNameInitials(firstNameInitials); 
    vo.setSurnameInitials(surnameInitials); 

return vo; ; 

}

+0

@Adi检查我的答案一次 – PSR

+0

@ tPSR hanks我该怎么办? – Adi

+0

创建vo类。你知道如何创建 – PSR

0

错误:

return firstNameInitials; surnameInitials; 

返回只有一个值;

printInitials(firstNameInitials, surnameInitials); 

将函数转换为将char作为参数或将参数更改为字符串。

0

请试试这个。你犯了一些简单的错误。

public class Testprg 
{ 
    public void start() 
    { 
    String name = getNameFromUser(); 
    char firstNameInitials = getFirstNameInitials(name); 
    char surnameInitials = getSurNameInitials(name); 
    printInitials(firstNameInitials, surnameInitials); 
    } 

    private String getNameFromUser() 
    { 
    System.out.print("Please enter your name: "); 
    String name = Keyboard.readInput(); 
    return name; 
    } 

    private char getFirstNameInitials(String name) 
    { 
    char firstNameInitials = name.charAt(0); 

    return firstNameInitials; 
    } 

    private char getSurNameInitials(String name) 
    { 
    int indexOfSpace = name.indexOf(" "); 
    char surnameInitials = name.charAt(indexOfSpace + 1); 

    return surnameInitials; 
    } 

    private void printInitials(char firstNameInitials, char surnameInitials) 
    { 
    System.out.print("your initials are: " + firstNameInitials + ". " + surnameInitials + "."); 
    } 
} 
-1
public class ShowCurrentTime 
{ 
    public static void main (String [] args) 
    { 
     //obtain the total milliseconds since Midnight, Sept 1, 2016 
     long totalMilliseconds - System.currentTimeMillis(); 

     //total seconds 
     long totalSeconds = totalMilliseconds/1000; 

     long currentSeconds = (int) (totalSeconds) % 60; 

     //obtain total minutes 
     long totalMinutes = totalSeconds/60; 

     //obtain current minute 
     long currentMinute = (int) (totalMinutes) % 60; 

     long toalHours = totalMinute/60; 

     long currentHour = (int) (totalHours % 24); 

     System.out.println ("Current time is " + currenHour + ":" 
           + currentMinute + " " + " " + currentSeconds 
           + "GMT"); 
    } 
} 
+0

请编辑更多信息。仅限代码和“尝试这个”的答案是不鼓励的,因为它们不包含可搜索的内容,也不解释为什么有人应该“尝试这个”。我们在这里努力成为知识的资源。 –