code: public static int getStringCharacterIndex(String s, int columnIndex) {
          int index = 0;
          int counter = 0;
          while(counter < columnIndex) {
              if(isCharCJK(s.charAt(index++))) {
                  counter++;
                  if(counter == columnIndex) {
                      return index - 1;
                  }
              }
              counter++;
          }
          return index;
      }
docs: This method does the reverse of getColumnIndex, given a String and imagining it has been printed out to the
  top-left corner of a terminal, in the column specified by {@code columnIndex}, what is the index of that
  character in the string. If the string contains no CJK characters, this will always be the same as
  {@code columnIndex}. If the index specified is the right column of a CJK character, the index is the same as if
  the column was the left column. So calling {@code getStringCharacterIndex("英", 0)} and
  {@code getStringCharacterIndex("英", 1)} will both return 0.
  @param s String to translate the index to
  @param columnIndex Column index of the string written to a terminal
  @return The index in the string of the character in terminal column {@code columnIndex}