-3

まず、Javaに関してはかなり新鮮です。私のプログラムは、ユーザーに文字列を要求し、入力したものを出力することになっています。次に、すべての文字を小文字に変更し、文字列からすべてのスペースを削除して、これを出力することになっています。この後、アルファベットの文字配列を出力し、文字列に文字が出現するたびにアスタリスク (*) を使用して表示することになっています (ここからどこから始めればよいかさえわかりません)。現在、文字列を配列に出力するだけです(正しくありません)。これは私がこれまでに持っているものです。スペースのない文字列または元の文字列のいずれかを出力しますが、両方は出力しません。私のオブジェクト/配列の命名はひどいものであり、前もってお詫び申し上げます。どんなガイダンスでも大歓迎です

編集:ここに質問があります。この課題では、次のことを行うプログラムを作成します。

  1. ユーザーに正の整数 m を入力してもらい、その整数を読み取ります。main で宣言された Scanner オブジェクトを使用して、この整数を読み取ります。

  2. ユーザーに m 文字列の入力を求めるメソッドを呼び出します。文字列が読み取られると、単一の文字列 st に連結される必要があります。m 個の文字列を読み取って単一の文字列 st を形成した後、メソッドは st を返す必要があります。注: このメソッドには、m を受け取る int と、main で宣言された Scanner オブジェクトを受け取る Scanner オブジェクトの 2 つのパラメーターがあります。

  3. メインでは、メソッドから受け取った連結文字列を出力します。

  4. メインで String オブジェクトを小文字に変換します。

  5. メインでは、小文字の String オブジェクトを char の配列に変換します。(すべて小文字になります。)

  6. 作成したばかりの文字配列をメインに表示します。(ループ構造が必要です。)

  7. 次の方法で文字配列を圧縮するメソッドを呼び出します。このメソッドは、配列内のアルファベットの文字を数え、その数と同じサイズの新しい配列を作成し、元の配列の文字のみを新しい配列にコピーします。新しい配列を返します。

  8. main で、サイズ 26 の整数配列を宣言します。文字配列 x (小文字のみを含む) と、main で宣言されたものを受け取る整数配列 z の 2 つのパラメーターを使用してメソッドを呼び出します。このメソッドは、整数配列のすべてのエントリをゼロに設定します。次に、小文字配列を処理し、各文字の出現回数をカウントします。ヒント: z[x[i]-97]++ で数えることができます。a の ASCII コードは 97 であるため、x[i] が「a」の場合、z[0] がインクリメントされます。'b' を指定すると、z[1] がインクリメントされます。整数配列には、小文字の配列内の文字の度数分布が含まれるようになりました。

  9. 1 つの整数配列パラメーター (度数分布配列を受け取る) を指定してメソッドを呼び出し、新しい行に各文字を出力し、その後にその配列要素の整数値に等しい星の数を出力します。これはきちんと揃える必要があります。ヒント: i が 0 ≤ ≤ 25 のインデックスの場合、(char)(i+97) はアルファベットの小文字です。

    package lab6;
    
    import java.util.Scanner;
    
    public class Lab6 {
    
        public char sent[];
    
    
    public static void main(String[] args) {
    Scanner input = new Scanner(System.in);
    System.out.println("enter the number of strings you want: ");
    int m = input.nextInt();
    Lab6 loo = new Lab6();
    loo.print(loo.loop(m));
    
    
    }
    
    public String loop(int m) { //print the string that was entered
    String total = " ";
    for (int i = 1; i <= m; i++) {
        Scanner input = new Scanner(System.in);
        System.out.println("enter string: " + i);
        String st = input.nextLine();
    
        total += st + "";
    
    }
    System.out.println(total);
    
    return total;
    
    }
    
    public void print(String ht) { //print array
    
    String st = ht.toLowerCase().replaceAll("\\s", "");
    sent = st.toCharArray();
    for (int i = 0; i < sent.length; i++) {
        System.out.println(sent[i]);
    
            }
        }
    }
    
4

1 に答える 1