2017-02-27 11 views
-16

2番目に長い単語を(配列を使わずに)見つけるにはJavaプログラムが必要です。配列を使わずに2番目に長い単語を見つけるプログラムを書く

私を助けてください。

私が与えている
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); 
    } 
} 

が入力 -

サヤンが家に行く:

この

は、私がこれまで持っているコードです。

このoutputs-

最長の単語は、サヤン 第二最長の単語がfollows-

最長の単語がサヤンであるとして、私は出力を持っている必要がありますサヤン

です 2番目に長い単語が入ります

+2

これまでに何を試みましたか? –

+6

あなたはこのようなdownvotesをたくさん得ようとしています。あなたの宿題はここにはありません。 –

+2

ようこそスタックオーバーフロー! [ツアー]を見て周りを見て、[ヘルプ]、特に[*どのように良い質問をしますか?](/助け/やり方)を読んでください。良い質問をしないでください。 –

答えて

0

最初の設定をlongestsecにしてください。 - その最初の単語が文の中で最長の場合はどうなるかと思い

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

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

は、なぜあなたは最初の単語にlongestsecの両方を設定します:それらとtemp次のように作成しますか?

次に、あなたのコードが出力を生成します。

最長の単語は、第二次最長ワードが家であるサヤン
です。

あなたが現在持っているが、あなたはの世話をする必要があり、文の最後に .があるので、まだあなたは...期待していないものを何よりも正確である

- 多分ch!=' 'のチェックを行いますもう少し複雑で、'.'もチェックしてください。私はそれを正しく行う方法を理解するためにそれを残す。

関連する問題