Этот вопрос базируется на эту тему Programming Riddle: How might you translate an Excel column name to a number?Зачем нужно многократно вычитать на 1?
Вот код от этого вопроса, чтобы перевести номер столбца с именем первенствовать колонки
public String getColName (int colNum) {
String res = "";
int quot = colNum;
int rem;
/*1. Subtract one from number.
*2. Save the mod 26 value.
*3. Divide the number by 26, save result.
*4. Convert the remainder to a letter.
*5. Repeat until the number is zero.
*6. Return that bitch...
*/
while(quot > 0)
{
quot = quot - 1;
rem = quot % 26;
quot = quot/26;
//cast to a char and add to the beginning of the string
//add 97 to convert to the correct ascii number
res = (char)(rem+97) + res;
}
return res;
}
Я тестировал этот код полностью и он работает, но у меня есть вопрос о том, что нужна эта линии должны быть повторено для этой работы
quot = quot - 1;
из моего понимания Quot необходимо сопоставить число Col дистанцироваться от «а». Это означает, что 1 должен отображаться на расстоянии 0 от 'a', от 2 до 1 расстояния от 'a' и т. Д. Но разве вам не нужно вычитать это один раз, чтобы объяснить это? Не в цикле я имею в виду в конечном счете,
quot = quot/26;
остановит цикл.
Предположительно, исходное значение было сформировано путем объединения значений в диапазоне 1..26, а не 0..25. –
, но это 0 ... 25, потому что вы выполняете эту операцию rem + 97, расстояние от 'a'. – committedandroider