2013-06-01 3 views
1

안녕하세요 저는 자바 프로그래밍에 익숙하지 않습니다. 나는 사용자의 이름과 성 이니셜을 가져 오는 자바 프로그램을 작성하려고한다. 내 코드는 다음과 같습니다 return 문에,자바 컴파일러 오류 : 명세서가 아닙니다.

Error: not a statement. 

오류 라인 18에있을 것 같다 : 내가 오류 메시지가 무엇입니까

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 +"."); 
} 
} 

, 나는 그것이 무엇을 의미하는지 잘 모릅니다. 나는 그것을 고치려고했지만 실패했습니다. 어떤 제안을하면 어떻게 해결할 수 있습니까?

+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 배열을 사용하여

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 행크스 어떻게해야합니까? – Adi

+0

클래스를 생성하십시오. – PSR

0

에러 :

return firstNameInitials; surnameInitials; 

리턴 값만;

printInitials(firstNameInitials, surnameInitials); 

매개 변수로 char을 취하거나 인수를 string으로 변경하는 함수로 변환하십시오.

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

자세한 내용을 편집하십시오. 코드 전용 및 "시도하십시오"답변은 검색 가능한 콘텐츠가 없으므로 권장하지 않으며 누군가가 "시도해"야하는 이유를 설명하지 않습니다. 우리는 여기서 지식을위한 자원이되기 위해 노력합니다. –

관련 문제