2017-03-21 17 views
-3

다음은 내가 수행 한 작업입니다. 코드에 수정이 필요합니다. 이것이 작동하지 않는 이유를 알 수 없습니다.사용자로부터 두 개의 문자열을 가져 와서 배열과 루프를 사용하지 않고 알파벳 순으로 정렬하는 프로그램

public class NewClass2 { 
    public static void main(String[] args) { 
    Scanner obj = new Scanner(System.in); 
    System.out.println("Enter name of first city: "); 
    String s1 = obj.next(); 
    char x = s1.charAt(0); 
    System.out.println("Enter name of second city: "); 
    String s2 = obj.next(); 
    char y = s1.charAt(0); 
    System.out.println("Enter name of third city: "); 
    String s3 = obj.next(); 
    char z = s1.charAt(0); 
    if (x<y && y<z) 
    System.out.println("The three cities in alphabetical order are " + s1 + " "+ s2 + " " + s3); 
    else if (y<x && x<z) 
    System.out.println("The three cities in alphabetical order are " + s2+ " " + s1 + " " + s3); 
    else if(z<x && x<y) 
    System.out.println("The three cities in alphabetical order are " + s3 + " " + s1 + " " + s2);  
    else if (y<z && z<x) 
    System.out.println("The three cities in alphabetical order are " + s2 + " " + s3 + " " + s1); 
    else if (x<z && z<y) 
    System.out.println("The three cities in alphabetical order are " + s1 + " " + s3 + " " + s2); 
    else 
    System.out.println("The three cities in alphabetical order are " + s3 + " " + s2 + " " + s1); 

} 
} 

원하는 해결책을 얻으려는 것.

+1

' "이 작동하지 않는 이유를 이해 할 수 없습니다."'- 그렇다면이 문제를 해결하는 방법을 배울 수있는 좋은 기회입니다. 왜 그것이 * 작동하지 않는다고 생각하는지 설명하는 것으로 시작하십시오. 뭐하는거야? 그것이 무엇을 기대하고 있습니까? 왜? 이것은 또한 디버거 사용에 익숙해 질 수있는 좋은 기회입니다. 디버거를 사용하여 코드를 한 행씩 실행합니다. 런타임 값과 동작을 관찰하십시오. 예상과 다른 점은 무엇입니까? 왜? – David

+0

필요한 해결책을 얻기를 원합니다. ..... 와우 .. 제발 정확히 프레임 질문 – Yatin

+0

어쨌든 고마워! 내 문제를 이해할 수있는 사람이 내 문제에 대한 해답을 얻었습니다. –

답변

0

항상 첫 입력을 자체와 비교하십시오!

char y = s1.charAt(0); 

char y = s2.charAt(0); 

char z = s1.charAt(0); 

당신이 이러한 문제를 이해하는 데 도움이 될 수 있습니다 디버거를 사용

char z = s3.charAt(0); 

해야해야한다.

+0

고마워요. 남자! 하하, 나는 문자 그대로 내 실수를 웃고있어 : D 조 –

0

Java의 내장 빌드 방법을 사용하여 정렬 작업을 수행 할 것을 제안합니다. 이 문자열을 목록에 추가하고 Collections.sort 함수를 호출하기 만하면됩니다. 여기

그것을 위해 작동하는 코드입니다

import java.util.ArrayList; 
import java.util.Collections; 
import java.util.List; 
import java.util.Scanner; 

public class TestClass { 

    public static void main(String[] args) { 
     List<String> list = new ArrayList<String>(); 
     Scanner obj = new Scanner(System.in); 
     System.out.println("Enter name of first city: "); 
     String s1 = obj.next(); 
     list.add(s1); 
     System.out.println("Enter name of second city: "); 
     String s2 = obj.next(); 
     list.add(s2); 
     System.out.println("Enter name of third city: "); 
     String s3 = obj.next(); 
     list.add(s3); 

     Collections.sort(list, String.CASE_INSENSITIVE_ORDER); 
     System.out.println("The three cities in alphabetical order are - " + list); 
    } 

}