0

我想获取一个 String str 和一个 int wSize 并使用它来创建一个哈希表。一个例子是解释我想要什么的最好方法。

例如: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) 第一个参数是零索引,第二个参数是 1 索引。例如:

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

如果您想从字符串“alphabet”中获取 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 回答