2014-02-27 3 views
0

이 우리에게 요구 무슨이다 :비교 여러 문자열의 길이 자바

는 showInputDialog JOptionPane에 클래스의() 메소드를 사용하여 가족의 세 가지의 첫 번째 이름의 영어 버전을 요청합니다. 다음으로 가장 긴 이름을 가진 가족 구성원의 이름을 표시 . (넥타이가있는 경우, 다만 둘 중 하나를 표시합니다.) 다니엘은 가장 긴 이름을 가지고있다.

내가 지금까지 가지고 붙어있는 무슨이다 :

import javax.swing.JOptionPane; 

public class Foothill {  

public static void main(String[] args) { 

    String[] names = new String[2]; 

    for(int x=0; x < 4; x++){ 

     names[x] = (JOptionPane.showInputDialog("Enter your name")); 

     for(int j=0;) 
     } 
    if();{ 

      JOptionPane.showMessageDialog(null,"The number with the greatest value is " + Max); 
     } 
    } 
} 

내가 배열의 각 문자열의 길이를 테스트 한 후 내에서 문자열의 길이를 비교하는 방법을 이해하는 힘든 시간을 보내고있어 배열 이 작업을 수행하는 기본 제공 방법이 있다는 것을 알고 있지만 반복을 통해이를 수행하는 방법을 설명해 줄 수 있습니까? 감사! 그것은 매우 간단

String longest = ""; 
for (String name : names) { 
    longest = name.length() > longest.length() ? name : longest; 
} 

이 당신의 이름 목록 (names)을 반복하고 변수 longest

+0

... –

답변

0

당신은 모든 이름을 반복하고 문자열의 .length() 방법을 사용할 수 있습니다 정말.

String[] names = { 
    "John", 
    "Cassandra", 
    "Tom" 
}; 

String longest = names[0]; 
for(int i = 1; i < names.length; i++) { 
    String name = names[i]; 
    if(name.length() > longest.length()) 
     longest = name; 
} 

// longest will be "Cassandra" here. 
0

에 가장 긴 할당합니다

0

이 시도 :

public static void main(String[] args) { 

    String[] names = new String[3]; 
    int longest = 0; 
    String longestName = ""; 

    for(int x=0; x < 3; x++){ 

     names[x] = (JOptionPane.showInputDialog("Enter your gosh darned name")); 

     if(names[x].length() > longest){ 
      longest= names[x].length(); 
      longestName = names[x]; 
     } 

    } 
    JOptionPane.showMessageDialog(null, longestName +" has the longest name, it is " 
     + longest + "characters"); 

} 
+0

만약에 그가 유형 5 이름 : 다음은 예입니다? – renke

+0

@JoaoMosquito OP는 "가족 구성원의 ** 세 **의 첫번째 이름"입력 할 것이라는 점을 지정했습니다. 또한 대화 상자는 3 번만 나타납니다. –

0

간단한 해결책은 모든 이름을 반복하고 .length() 메소드를 사용하여 길이를 비교하는 것이다.

또 다른 해결 방법은 문자열을 입력 할 때마다 길이를 비교하는 것입니다 (루프 하나만). 그것은 컴파일 가능한 코드가 아닙니다

int nb = 2; 
String[] names = new String[nb]; 
int maxLength = -1; // Default value 
for (int i = 0; i < nb; i++) { 
    names[i] = JOptionPane.showInputDialog("Enter your name : "); 
    // Compare the length of this name to the previous greatest length 
    if (names[i].length() > maxLength) { 
     // Change the maximum 
     maxLength = names[i].length(); 
    } 
} 
JOptionPane.showMessageDialog(null, "The greatest value is " + maxLength);