Вы можете разделить вход, вызвав split(" ")
на входной строке.Это вернет строку [], представляющую каждое слово.Выполните итерацию по этому массиву и используйте каждую строку в качестве ключа в вашей хэш-таблице со значением, являющимся целым числом.Каждый раз, когда вы сталкиваетесь со словом, либо увеличивайте его значение, либо устанавливайте значение 0, если в данный момент его нет.
Hashtable<String, Integer> hashtable = new Hashtable<String, Integer>();
String[] splitInput = input.split(" ");
for(String inputToken : splitInput) {
Integer val = hashtable.get(inputToken);
if(val == null) {
val = new Integer(0);
}
++val;
hashtable.put(inputToken, val);
}
Кроме того, вам может потребоваться заглянуть в HashMap
вместо Hashtable
,HashMap
не является потокобезопасным, но быстрее.Hashtable
немного медленнее, но потокобезопасен.Если вы пытаетесь сделать это в одном потоке, я бы порекомендовал HashMap
.