0

文字列のシーケンスを調べて、文字列の平均長を計算し、平均の長さを超える文字列の数をカウントしたいと考えています。

これまでのところ、私のコードでは int のみを読み取り、文字列にも文字が含まれています。では、int ではなく文字列に対して機能するようにコードを変更するにはどうすればよいでしょうか。最初のステップは、nextInt メソッドを取り出して、コード内の他の int 変数だけでなく文字列でも機能するように変更することです。誰かが私を助けることができますか?

// examine a sequence of strings 
// compute the average string length
// count how many strings are above the average length

import java.util.*;

public class StringArrayTest {
public static void main(String[] args) {
    Scanner console = new Scanner(System.in);
    System.out.println("What is the number of strings? ");
    int numStrings = console.nextInt();
    String[] strings = new String[numStrings];

    // record strings to find average length
    int sum = 0;
    for (int i = 0; i < numStrings; i++) {
        System.out.println("Number of strings from string " + (i + 1) + ": ");
        String nextLine = console.next();
        strings[i] = nextLine;
        sum += strings[i].length;
    }
    double average = (double) sum / numStrings;

    // count strings above average length
    int above = 0;
        for (int i = 0; i < strings.length; i++) {
            if (strings[i].length() > average) {
                 above++;
            }
        }

        // report results
        System.out.println();
        System.out.println("Average length of strings: " + average);
        System.out.println(above + " strings above average length");
    }

}
4

2 に答える 2

0

ここには変更のみが掲載されています。コードの残りの部分は同じままです。

  1. 配列のデータ型が int から String に変更されました
  2. console.nextInt() は、戻り時に文字列を読み取る console.next() に変更されました
  3. String 配列をループして、個々の文字列の長さを文字列の長さの平均と比較します。

必要なのはそれだけです。

String[] strings = new String[numStrings];
...
for (int i = 0; i < numStrings; i++) {
            System.out.println("Number of strings from string " + (i + 1) + ": ");
            String nextLine = console.next();
            strings[i] = nextLine;
            sum += strings[i].length();
        }
...
for (int i = 0; i < strings.length; i++) {
            if (strings[i].length() > average) {
                above++;
            }
        }
于 2016-04-26T05:57:14.827 に答える
-1

次の変更
console.nextInt() を 次のように変更できますconsole.nextLine()

sum += strings[i]sum += strings[i].length

if (strings[i] > average)if (strings[i].length > average)

于 2016-04-26T05:41:37.053 に答える