Вы спрашиваете о самом быстром, но, возможно, вы имеете в виду «лучший» или «правильный» или «типичный»?
Вы также запрашиваете запятые для обозначения тысяч, но, возможно, вы имеете в виду «в обычной удобочитаемой для человека форме в соответствии с местными обычаями вашего пользователя»?
Вы делаете это так:
int i = 35634646;
String s = NumberFormat.getIntegerInstance().format(i);
Американцы получат "35 634 646"
немцы получат "35.634.646"
Швейцарские немцы получат "35'634'646"