0

我正在根据地图将字母转换为数字,但希望基于多键地图来完成,因为它在更改地图中的值时更容易并且看起来更好,有没有简单的方法来做到这一点

工作代码

void main() {
    String words = 'hello world how are you doing today';
    String wordsToNumbers = '';
    Map lettN = {
      'a': '1',
      'b': '1',
      'c': '1',
      'd': '2',
      'e': '2',
      'f': '2',
      'g': '3',
      'h': '3',
      'i': '3',
      'j': '4',
      'k': '4',
      'l': '4',
      'm': '5',
      'n': '5',
      'o': '5',
      'p': '6',
      'q': '6',
      'r': '6',
      's': '7',
      't': '7',
      'u': '7',
      'v': '7',
      'w': '8',
      'x': '8',
      'y': '8',
      'z': '8',
      ' ': ' ',
    };


    for (int i = 0; i < words.length; i++) {
      if (lettN.keys.contains(words[i])) {
        wordsToNumbers =
            wordsToNumbers +
                lettN[words[i]];
      } else {}
    }
    print(wordsToNumbers);
  }

想使用这个多键映射而不是 lettN 映射

  Map<List, String> multiKeyMap = {
    ['a', 'b', 'c']: '1',
    ['d', 'e', 'f']: '2',
    ['g', 'h', 'i']: '3',
    ['j', 'k', 'l']: '4',
    ['m', 'n', 'o']: '5',
    ['p', 'q', 'r']: '6',
    ['s', 't', 'u', 'v']: '7',
    ['w', 'x', 'y', 'z']: '8',
    [' ']: ' '
  };
4

0 回答 0