0

StringstrとintwSizeを取得し、それを使用してハッシュテーブルを作成したいと思います。例は、私が欲しいものを説明するための最良の方法です。

例:str = "alphabet" wSize = 2

次のようなハッシュテーブルが必要です:al 0 lp 1 ph 2 ha 3 ab 4 be 5 et 6

これは私が今まで持っているものです

public static void hashTableCreator (String str, int wSize) {
    Hashtable ht = new Hashtable();
    str = "alphabet";
    wSize = 2;
    String str2;

    for (int i = 0; i < str.length(); i++) {
      int value = 0;
      ht.put(str.substring(i, i + 1), value);
      value++;
    }

    Set set = ht.keySet(); 

    Iterator itr = set.iterator();
    while(itr.hasNext()) {
      str2 = (String) itr.next();
      System.out.println(str2 + ": " +
                         ht.get(str2));
    }

  }
4

2 に答える 2

2

string.substring(a、b)では、最初の引数はゼロインデックスで、2番目の引数は1インデックスです。例えば:

      "smiles".substring(1, 5) returns "mile"

文字列「アルファベット」からalを取得したい場合は、実行する必要があります

         LinkedHashMap<String, Integer> ht = new LinkedHashMap<String, Integer>();
 int value=0;
     for(int i=0; i<str.length()-1; i++) {
         ht.put(str.substring(i, i+2), value);
         value++;
     }
     Set<String> set = ht.keySet();
     Iterator<String> itr = set.iterator();
     while(itr.hasNext()) {
         String d = itr.next();
         System.out.println(d+ " "+ ht.get(d));
     }
    }

出力: al 0 lp 1 ph 2 ha 3 ab 4 be 5 et 6

于 2012-09-22T22:02:33.377 に答える
0
int value = 0;
for (int i = 0; i < str.length()-1; i++) {
  ht.put(str.substring(i, i + 2), value);
  value++;
}
于 2012-09-22T22:05:17.010 に答える