2016-09-15 7 views
0

5単語の文章を読み、その文章の中で最も長い単語を見つけ出して表示するプログラムを書く必要があります。 2つの同じ大きさの単語が存在する場合、最初の最大の単語が表示されます。文字列中の個々の単語の長さを見つけて比較する

import java.util.Scanner; 

public class Longest_Word { 

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

     String line; 
     String q, w, e, r, t; 

     System.out.print("Enter a five word sentence: "); 
     line = in.nextLine(); 
     Scanner scanner = new Scanner(line); 

     q = scanner.next(); 
     w = scanner.next(); 
     e = scanner.next(); 
     r = scanner.next(); 
     t = scanner.next(); 

     System.out.println(q + " " + r); 
    } 
} 

あなたはおそらく私がどこにいるのかを知ることができます。私は本当にこれらの単語を比較する方法を知らない。まず、if/elseを使用して、line.length()を使用して個々に比較することでした。

配列、.split、またはループを使用できません(悲しいことに)。

+0

たぶん、あなたは配列、.splitまたはループを使用することはできませんなぜ私はそれが理解できない見つける;-) – markg

+0

.....最後にそれらすべてを比較するのを待つべきではありません。コンピュータ科学の宿題の一部ですか?現実世界では、5つの文字列変数をループして最も長いものを決定するためです。 – Jireugi

+0

ジルギですが、そのようなことは必要ありません。おそらくレッスンの一部です...もし1億語であれば? – markg

答えて

0

この問題で/ elseとループが同じ場合。

String largerString = q; 
if(w.length()>largerString.length()) 
{ 
    largerString = w; 
} 
if(e.length()>largerString.length()) 
{ 
    largerString = e; 
} 
if(r.length()>largerString.length()) 
{ 
    largerString = r; 
} 
if(t.length()>largerString.length()) 
{ 
    largerString = t; 
} 
System.out.println(largerString); 
+0

これと地獄の答えは助けになりました。ありがとう! – Conf3tti

+0

@ Conf3tti素晴らしい!あなたが気にしなければ、答えの1つを正しいものとしてマークすることができます。 – Jireugi

+0

@ Conf3ttiあなたは歓迎です –

0

あなただけの最大の単語を表示したい場合は、次のように、あなたがそれを行うことができ、単語の数は、私が提案する制約を考えると5以上

Scanner in = new Scanner(System.in); 

String line; 
String q, w, e, r, t; 

System.out.println("Enter a five word sentence: "); 
line = in.nextLine(); 
Scanner scanner = new Scanner(line); 

String maxWord = ""; 
while(scanner.hasNext()){ 
    String word =scanner.next(); 
    if(word.length()>maxWord.length()) 
     maxWord = word; 
} 
System.out.println(maxWord); 
+2

質問はループがないことを示します。 – Aelexe

0

である場合には、それはあまりにもダイナミックになりますif文を想定どおりに使用します。

import java.util.Scanner; 
public class Longest_Word { 

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

    String line; 
    String q, w, e, r, t; 

    System.out.print("Enter a five word sentence: "); 
    line = in.nextLine(); 
    Scanner scanner = new Scanner(line); 

    q = scanner.next(); 
    String longest = q; 

    w = scanner.next(); 
    if (w.length()>longest.length()) 
     longest = w; 

    e = scanner.next(); 
    if (e.length()>longest.length()) 
     longest = e; 

    r = scanner.next(); 
    if (r.length()>longest.length()) 
     longest = r; 

    t = scanner.next(); 
    if (t.length()>longest.length()) 
     longest = t; 

    System.out.println(longest); 
} 
} 
0

リスト内のすべての値を読み、最長の文字列

String logestStr = list.stream().max(Comparator.comparing(String::length)).get(); 
+0

コンパレータを短くすることができます。 'Comparator.comparing(String :: length)' –

+0

指名してくれてありがとう、私は答えを簡略化して編集しました – ravthiru

1

これはあなたの先生を表示見つけるために、Javaストリームを使用!

Stream.generate(scanner::next).limit(5) 
    .max(Comparator.comparing(String::length)) 
    .ifPresent(System.out::println); 
関連する問題