Получение символа из его кода в Java по аналогии с String.fromCharCode в JS

276
29 апреля 2017, 21:29

Нужно переписать данный код с JS:

function deobfuscate(string) {
    var arr = string.split('.');
    var result = '';
    for (index = 0; index < arr.length; ++index) {
        if (arr[index]) {
            result += String.fromCharCode(Math.sqrt(arr[index]));
        }
    }
    return result;
}

На Java. Что я уже сделал:

private String deobfuscate(String obfuscate) {
    String[] numbers = obfuscate.split("\\.");
    String result = "";
    for(String number : numbers) {
        int num = Integer.parseInt(number);
        int sqrtnum = Math.sqrt(num);
        String schar = ???;
        result += schar;
    }
    return result;
}

Что писать вместо ???? Я так понял, в JS коде число переводится в Unicode символ, но как это сделать в Java?

Answer 1
  1. Метод Math.sqrt возвращает double, так что должно быть:

    double sqrtnum = Math.sqrt(num);
    
  2. Получить символ из его кода можно простым приведением типа:

    char c = (char)sqrtnum;
    

С учетом использования StringBuilder вместо конкатенации строк получается так:

private String deobfuscate(String obfuscate)
{
    String[] numbers = obfuscate.split("\\.");
    StringBuilder result = new StringBuilder(numbers.length);
    for (String number : numbers)
    {
        int num = Integer.parseInt(number);
        double sqrtnum = Math.sqrt(num);
        char c = (char)sqrtnum;
        result.append(c);
    }
    return result.toString();
}
Answer 2

Перевод ответа BalusC

У класса String есть конструктор принимающий int[] (добавлено с Java 1.5):

public static String fromCharCode(int... codePoints) {
    return new String(codePoints, 0, codePoints.length);
}
READ ALSO
open failed: EACCES (Permission denied)

open failed: EACCES (Permission denied)

Пытаюсь загрузить файл в папку на внутреннем накопителе по пути /storage/sdcard0/novsu/db/ но выдает сообщение /storage/sdcard0/

356
Как реализовать физику пули

Как реализовать физику пули

Как сделать так чтобы снаряд, который вылетел из ствола пушки, пролетел несколько метров и упал на землю

230
Не получается запустить тесты из InteliJ CE на Serenity 1.1.17

Не получается запустить тесты из InteliJ CE на Serenity 1.1.17

Я уже думал, может беда в том, что это Mac OSX? Просто шаблоны (которые шли вместе с архетипом) запускает без проблем, а мои скрипты такого же формата...

236
Формула-шаблон и её последующий просчёт

Формула-шаблон и её последующий просчёт

Всем добрый вечер! Кто нибудь может помочь, с такой задачкой

346