-2

このコードについて助けが必要です

問題

  1. グローバルな可視性を備えた String 配列を持つ Java クラスを記述します。
  2. 指定された文字列を文字列配列に追加するメソッドを追加します。
  3. 文字列配列で特定の文字列を検索するメソッドを追加します。
  4. 文字列配列で特定の文字を検索するメソッドを追加します。このメソッドは、指定された文字の出現をカウントして返す必要があります。
  5. これらのクラス メソッドをテストするための適切なメイン メソッドを記述します。

これがコードです。最初に、TestString配列のscoundクラスを作成するメソッドのクラスを作成しました

私の質問は、scoundクラスにエラーがあり、それを修正しようとしましたが、最初のクラスでは機能しません:

 /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
    package ooplab3;

    public class StringArray {

        String[] sTA = null;
        int index = 0; //last added sring position in the string array

        public StringArray() {
        }

        public String[] getsTA() {
            return sTA;
        }

        public String getsTAindex(int i) {
            return sTA[i];
        }

        public int getcounter() {
            return index;
        }

        public void setCounter(int counter) {
            this.index = counter;
        }

        public void addStrinToArray(String st) {
            if (this.index < sTA.length) {
                sTA[this.index] = st;
                this.index++;
            }
        }

        public int searchStringInArray(String sT) {
            int n = 0;
            for (int i = 0; i < this.index; i++) {
                for (int j = 0; j < 10; j++) {
                    int indexOf = sTA[i].indexOf(sT);
                    n += searchStringInArray(sTA[i]);
                    return n;
                }
            }
            return n;
        }

        public int searchcharInArray(String sT) {
            int n = 0;
            int Startindex = 0;
            do {
                n += sT.indexOf(Startindex);
            } while (n > Startindex);
            return n;
        }

        public boolean containsChar(String s, char search) {
            if (s.length() == 0) {
                return false;
            } else {
                return s.charAt(0) == search || containsChar(s.substring(1), search);
            }
        }

        public void containsChar(Object object, String search) {
        }


    }

サウンド クラス :

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ooplab3;

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.util.Scanner;

public class testStringarray {


    public static void main(String[] args) throws FileNotFoundException {
        String[] testArray = new String[30];
        Scanner infile = new Scanner(new FileReader("input_txt"));


       // System.out.println("contents of testArray");

        int i = 0;
        while (infile.hasNext()) {
            String j = infile.next();
            addString(j, i);

            System.out.println(testArray[i] + "\n");

            i++;
        }
        }


    }


    the input file contain: hello this is my java program  
4

2 に答える 2

0

多くの問題が存在します。それらの1つは次のとおりです。

StringArray.addStrinToArray()メソッドで、null配列の要素に文字列を割り当てようとします。

String[] sTA = null;
sTA[index] = st;  //this will throw NullPointerException

アレイを初期化する必要があります。

String[] sTA = new String[initialSize];

ここで、initialSizeは、配列の初期サイズを含む整数です。

于 2013-03-18T13:16:21.043 に答える
0

私が知る限り、 という名前のクラスとStringArray、 の機能をテストすることを目的とした 2 番目のクラスがありStringArrayます。しかし、その 2 番目のクラスは実際にはまったく使用 StringArrayしません。代わりに、独自の配列を作成し、 のメソッドaddString()と似ているが同一ではない名前を持つメソッドを呼び出しますStringArray

の重大な問題の 1 つStringArrayは、実際の配列を作成しないことです。その配列メンバー変数はそのまま残りnullます。new実際の配列を作成するには、" " 式が必要です。次に、テストクラスは次のようにする必要があります

StringArray sa = new StringArray();
sa.addStringToArray("Hello, world");
String[] array = sa.getsTA();
for (String s: array)
    System.out.println(s);
于 2013-03-18T13:10:14.213 に答える