За исключением двух цифр, сделайте все цифры целых чисел равными нулю - Java [closed]

Я нашел решение в этом GitHub repo

Код:

Если вы хотите открыть & amp; browse file: FileBrowser.class

        Intent intent = new Intent(activity, FileBrowser::class.java)
        intent.putExtra(Constants.INITIAL_DIRECTORY, File(storageDirPath).absolutePath)
        intent.putExtra(Constants.ALLOWED_FILE_EXTENSIONS,"*")

        startActivityForResult(intent, CODE_INTENT )

Если вы хотите получить URI выбранного пользователем файла: FileChooser.class

        Intent intent = new Intent(activity, FileChooser::class.java)
        intent.putExtra(Constants.INITIAL_DIRECTORY, File(storageDirPath).absolutePath)
        startActivityForResult(intent, CODE_INTENT )

-3
задан Ali Göktaş 13 July 2018 в 08:04
поделиться

3 ответа

Поскольку округление - это то, что считается справа, вы не можете его использовать, вы можете просто перейти от строки и использовать базовое регулярное выражение, чтобы заменить не первые 2 цифры на 0:

int val = 1447948;
int res = Integer.valueOf((""+val).replaceAll("(?<=\\d{2})\\d", "0"));
//  res : 1400000

(?<=\\d{2})\\d соответствуют цифрам, у которых две цифры перед ними

Workable Demo

2
ответ дан Pshemo 17 August 2018 в 13:23
поделиться
  • 1
    Или .replaceAll("(?<=\\d{2})\\d", "0") ( Демо ). – Pshemo 13 July 2018 в 08:32
  • 2
    @Pshemo ow спасибо, а не эксперт по регулярному выражению, и, конечно, не на lookbehind / ahead, ваш легче понять. Но, мое определение того, что я даю правильно? – azro 13 July 2018 в 08:35
  • 3
    Я не вижу проблемы с вашим предыдущим решением, кроме того, что это было little более сложным, чем то, что я предложил. – Pshemo 13 July 2018 в 08:38

Math - ваш друг.

int magnitude = (int) Math.pow(10, Math.log10(n) - 1)
int o = (int) Math.floor(n / magnitude) * magnitude

, где n - номер входа, а o - номер выхода.

4
ответ дан blhsing 17 August 2018 в 13:23
поделиться

Вы можете сделать это для любого числа, рассматривая его как строку:

int number = 1447948;
String number1 = String.valueOf(number);
String[] split = number1.split("");
StringBuilder number2 = new StringBuilder();
for (int i = 0; i < split.length; i++) {
  if(i > 1)
    number2.append("0");
  else
    number2.append(split[i]);
}
int result = Integer.parseInt(number2.toString());
System.out.println(result);
1
ответ дан GhostCat 17 August 2018 в 13:23
поделиться
  • 1
    Большое спасибо моему другу. Это именно то, что я ищу. – Ali Göktaş 13 July 2018 в 08:15
  • 2
    Я исправил некоторые незначительные вещи в вашем коде. Например, вы просто вызываете toString () в StringBuilder в конце. – GhostCat 13 July 2018 в 08:17
  • 3
    Благодарю вас @GhostCat – Karol Katanowski 13 July 2018 в 09:09
Другие вопросы по тегам:

Похожие вопросы: