There's something wrong: for(int q = i; q < array.length; q++){ if(!isNumber(array[q])){ if(isGreaterThan(array[i], array[q])){ String str = array[i]; array[i] = array[q]; array[q] = str; } }else{ q++; } }