2016-12-24 10 views
-3
import java.util.*; 
class Exam3 
{ 
     public static void main(String[] args) 
{ 
    Scanner sc = new Scanner(System.in); 

    System.out.print("Enter a String: "); 

    String word1 = "", word2 = ""; 
    int l1 = 0, l2 = 0; 

    while(sc.hasNext()) 
    { word1 = sc.next(); 
     l1 = word1.length(); 
     if(l1 > l2) 
     { 
      l2 = l1; 
      word2 = word1; 
     } 
    } 

    System.out.println("Longest Word: " + word2); 
    System.out.println("Length of Word: " + l2); 
} 
} 

Код не работает. Подсказка пользователя успешна, но больше ничего не происходит. Если вы введете строку и нажмите Enter, она перейдет к следующей строке, где вы можете снова ввести и т. Д. И т. Д.Мне нужна эта программа, чтобы найти самое длинное слово в строке в Java

+3

Пробовали ли вы отладки это? – GurV

+0

Каков результат, который вы получаете? Работает для меня – Mritunjay

+0

Возможный дубликат: http://stackoverflow.com/questions/10490344/how-to-get-out-of-while-loop-in-java-with-scanner-method-hasnext-as-condition –

ответ

1

В цикле должно быть условие выхода. Используйте следующий код.

import java.util.Scanner; 

public class LongestString { 

    public static void main(String[] args) { 
     Scanner sc = new Scanner(System.in); 

     System.out.print("Enter a String: "); 

     String word1 = "", word2 = ""; 
     int l1 = 0, l2 = 0; 

     while (sc.hasNext()) { 
      word1 = sc.next(); 

      // type exit finish the loop 
      if (word1.equals("exit")) 
       break; 

      l1 = word1.length(); 
      if (l1 > l2) { 
       l2 = l1; 
       word2 = word1; 
      } 
     } 

     sc.close(); 

     System.out.println("Longest Word: " + word2); 
     System.out.println("Length of Word: " + l2); 
    } 
} 
0

Этот подход работает для меня

public class actual { 
    public static void main(String[] args) { 
     Scanner sc = new Scanner(System.in); 

     System.out.print("Enter a String: "); 

     int largestLength = 0; 
     String largestWord = ""; 
     String a = sc.nextLine(); 
     for(String b:a.split(" ")){ 
      if (largestWord.length() == 0) { 
       largestLength = b.length(); 
       largestWord = b; 
      } else if (b.length() >= largestLength) { 
       largestLength = b.length(); 
       largestWord = b; 
      } 
     } 
     sc.close(); 
     System.out.println("Longest Word: " + largestWord); 
     System.out.println("Length of Word: " + largestLength); 
    } 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^