String stringFirstForRandom = Integer.toString(lastForRandom); int firstForRandom = stringFirstForRandom.lastIndexOf("0"); StringBuffer sb = new StringBuffer(stringFirstForRandom); sb.deleteCharAt(firstForRandom); stringFirstForRandom = sb.toString(); firstForRandom = Integer.parseInt(stringFirstForRandom); return (int)(firstForRandom + Math.random() * lastForRandom); This is my decision, but it turned out clumsily. Is there a way to make everything more careful? It is necessary to remove either the last digit in the int variable or the last character in the string.