Как заменить первые три символа целого числа Java на 111? - PullRequest
0 голосов
/ 04 апреля 2020

У меня есть целое число в java. Как заменить первые три числа на 111 (или любое другое число), например, превратить 783729 в ​​111729? Большое спасибо!

Ответы [ 4 ]

1 голос
/ 04 апреля 2020

Вы можете преобразовать его в строку, а затем заменить первые три буквы.

String s = String.valueOf(783729);
int i = Integer.parseInt(s.replace(s.substring(0, 3), "111"));
1 голос
/ 04 апреля 2020

Вы можете сделать это без преобразования в строку, используя простую арифметику c:

// Assumes that num is initially at least 999.
int replaceWith111(int num) {
  if (num < 1000) {
    return 111;
  }
  return 10 * replaceWith111(num / 10) + (num % 10) 
}
0 голосов
/ 04 апреля 2020

Очевидно, что если вам просто нужно сделать это, вы конвертируете в String и сделаете замену там.

Однако, просто для удовольствия, вот как вы можете сделать это, используя только Math функции и операторы. Не обрабатывает отрицательные числа - это оставлено в качестве упражнения для читателя:)

int s = 111;
int n = 783729;

int ds = (int)Math.ceil(Math.log10(s));
int dn = (int)Math.ceil(Math.log10(n));
int b = (int)Math.pow(10, dn-ds);
int sn = s * b + n % b;

System.out.println(sn);

Вывод:

111729
0 голосов
/ 04 апреля 2020

Преобразуйте целое число в строку, замените первые три символа и преобразуйте его обратно в целое число. Пожалуйста, попробуйте сделать это самостоятельно. если вы застряли во время кодирования, напишите свой код вместе с проблемой, с которой вы столкнулись.

...