2016-12-22 2 views
0

У меня есть ArrayList из [1, 7, 2, 21, 18, 25, 3, 18, 25, 4, 1, 4]ArrayList путаницы, слова на номер

И в ArrayList слов: [ag, bury, cry, dad]

Количества ArrayList содержит каждый из символов слова, конвертируются в назначенном значение INT.

Каждое число представляет собой букву алфавита; a = 1, b = 2 и т. д. и т. д. Следовательно, «ag» будет отображаться как «17»

Как добавить элементы списка номеров в новый массив ArrayList, который будет содержать эквивалентный номер слов: [17, 2211825, 31825, 414]? Есть ли более простой способ сделать это? Каждая комбинация петель, которые я пробовала, до сих пор не удалась. Любая помощь?

P.S. Нет, я не прошу вас сделать весь проект для меня. Это всего лишь небольшая часть проекта, который включает сортировку на основе простых, составных, четных и нечетных чисел. Это единственная часть, с которой я споткнулся на

+0

Пожалуйста, покажите код, который у вас есть. –

+1

Кроме того, забудьте список слов. Как вы конвертируете только одно слово *? –

+0

Если все символы ascii, вы можете взять каждое число и добавить фиксированное значение, чтобы преобразовать его в символ. (Если в нижнем регистре добавьте 96 к каждому значению. Если в верхнем регистре добавьте 64 к каждому значению.) См .: http://www.asciitable.com/. Вы можете сделать обратное (вычитание) для преобразования символов в 1-индексированные числа. – MrHappyAsthma

ответ

1
import java.util.*; 

public class HelloWorld{ 

    public static int getValue(char c) { 
     return c-'a'+ 1; 
    } 

    public static void main(String []args){ 
     String data[] = {"ag", "bury", "cry", "dad"}; 
     List<String> input = Arrays.asList(data); 
     List<String> result = new ArrayList<String>(); 
     for(int i=0;i<input.size();i++) { 
      StringBuilder sb = new StringBuilder(); 
      String item = input.get(i).toLowerCase(); 
      for(int j=0;j<item.length();j++){ 
       sb.append(getValue(item.charAt(j))); 
      } 
      result.add(sb.toString()); 
     } 
     for(int i=0;i<result.size();i++) 
      System.out.println(result.get(i)); 

    } 


} 

Надеюсь, это поможет. Это предполагает отображение «a-> 1, b-> 2» и т. Д. Если нет, то необходимо внести некоторые изменения

+0

Написание кода для других людей для копирования-вставки, когда они не проявляли никаких усилий при решении собственной проблемы, никому не помогает. – m0skit0

Смежные вопросы