2017-02-27 25 views
-16

我需要一個java程序來查找句子中第二長的單詞(不使用數組)。編寫程序找到第二長的單詞而不使用數組

請幫幫我。

這是我到目前爲止的代碼:

import java.io.*; 
class Second_longest_Trial 
{ 
    public static void main(String args[])throws IOException { 
     BufferedReader in=new BufferedReader(new InputStreamReader(System.in)); 
     System.out.println("Enter the sentence"); 
     String s=in.readLine(); 
     s=s.trim()+" "; 
     String longest=s.substring(0,s.indexOf(' ')); 
     String sec=longest; 
     int l=s.length(); 
     String temp=" ",str=" "; 

     for(int i=s.indexOf(' ')+1;i<l;i++){ 
      char ch=s.charAt(i); 

      if(ch!=' ') 
       temp=temp+ch; 
      else{ 
       if(temp.length()>longest.length()){ 
        sec=longest; 
        longest=temp; 
       } 
       else if(temp.length()>sec.length()){ 
        sec=temp; 
       } 
       temp=" "; 
      } 
     } 

     System.out.println("Longest word is "+longest); 
     System.out.println("Second Longest word is "+sec); 
    } 
} 

當我給的輸入 -

薩彥回家。

此輸出 -

最長的單詞是薩彥 第二長的字是薩彥

我應該得到的輸出如下 -

最長的單詞是薩揚 第二長字是

+2

到目前爲止您嘗試了什麼? –

+6

您將以這種方式獲得大量的降薪。我們不是來做你的功課。 –

+2

歡迎來到Stack Overflow!請參加[參觀],環顧四周,閱讀[幫助],尤其是[*我如何提出一個好問題?](/幫助/如何問)將您的作業傾倒在我們身上是不問一個好問題。 –

回答

0

放下你的無聲的初始設置longestsec。創建它們並temp方式如下:

String longest=""; 
String sec=""; 
String temp=""; 

for(int i = 0; i < l; i++) { 
    ... 

你爲什麼要設置longestsec既第一個字 - 猜如果第一個詞是在句子中最長會發生什麼?

那麼你的代碼產生輸出:

最長的單詞是薩彥
第二長的字是家庭。

這是比你目前有,但仍然沒有你所期望的 - 因爲是.你必須照顧的句末更正確的 - 也許做檢查ch!=' '一有點複雜,並檢查'.'以及。我讓你知道如何正確地做到這一點。

相關問題