Отбросить нули слева
Предполагается что этот метод будет отбрасывть нули слева от числа,
на вход получили 000101 на выходе 101
Что происходит на деле: на вход 000101 на выходе 65 WTF?? Еще пара примеров входа/выхода
0001024 532
0002020 1040
00020101 8257
public String divideWithFix(Integer dividend, Integer divisor) {
String dividendStr = dividend.toString();
{
StringBuilder sbDividend = new StringBuilder(dividendStr);
char cha = '0';
for (int i = 0; i<dividendStr.length(); i++) {
if (dividendStr.charAt(i) == cha) {
sbDividend.deleteCharAt(i);
System.out.println(dividendStr); //TODO
System.out.println(sbDividend.toString()); //TODO
}
dividendStr = sbDividend.toString();
break;
}
}
String divisorStr = divisor.toString();
{
StringBuilder sbDivisor = new StringBuilder(divisorStr);
char cha = '0';
for (int i = 1; i<divisorStr.length(); i++) {
if (divisorStr.charAt(i) == cha) {
sbDivisor.deleteCharAt(i);
}
divisorStr = sbDivisor.toString();
break;
}
}
int fixedDividend = Integer.parseInt(dividendStr);
int fixedDivisor = Integer.parseInt(divisorStr);
System.out.println(fixedDividend); //TODO
System.out.println(fixedDivisor); //TODO
String result = makeDivision(fixedDividend, fixedDivisor);
return result;
}
Как выяснилось, проблема заключается в переводе из строчного типа в целочисленый, перевод происходит в 8 системе исчисления. Как исправить эту проблему?
Ответы (1 шт):
Автор решения: Perfect Voyage
→ Ссылка
public static String getWithOutZero(String target){
String result = "";
for (int i = 0 ; i < target.length(); i ++){
if(target.charAt(i)!='0'){
result = target.substring(i,target.length());
return result;
// Если нужно удалить пробелы
// return new String(result.replace(" ",""));
}
}
return target;
}