Что лучший Механизм визуализации HTML должен встроить в приложение? [закрытый]

Быстрый и грязный Java-порт реализации C # e_h (выше). Обратите внимание, что оба возвращают double, а не int.

public class Text2Double {

    public double Text2Double(String text) {

        String[] units = new String[]{
                "zero", "one", "two", "three", "four", "five", "six", "seven", "eight",
                "nine", "ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen",
                "sixteen", "seventeen", "eighteen", "nineteen",
        };

        String[] tens = new String[]{"", "", "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety"};

        String[] scales = new String[]{"hundred", "thousand", "million", "billion", "trillion"};

        Map<String, ScaleIncrementPair> numWord = new LinkedHashMap<>();
        numWord.put("and", new ScaleIncrementPair(1, 0));


        for (int i = 0; i < units.length; i++) {
            numWord.put(units[i], new ScaleIncrementPair(1, i));
        }

        for (int i = 1; i < tens.length; i++) {
            numWord.put(tens[i], new ScaleIncrementPair(1, i * 10));
        }

        for (int i = 0; i < scales.length; i++) {
            if (i == 0)
                numWord.put(scales[i], new ScaleIncrementPair(100, 0));
            else
                numWord.put(scales[i], new ScaleIncrementPair(Math.pow(10, (i * 3)), 0));
        }

        double current = 0;
        double result = 0;

        for(String word : text.split("[ -]"))
        {
            ScaleIncrementPair scaleIncrement = numWord.get(word);
            current = current * scaleIncrement.scale + scaleIncrement.increment;
            if (scaleIncrement.scale > 100) {
                result += current;
                current = 0;
            }
        }
        return result + current;
    }
}

public class ScaleIncrementPair
{
    public double scale;
    public int increment;

    public ScaleIncrementPair(double s, int i)
    {
        scale = s;
        increment = i;
    }
}
18
задан conmulligan 19 March 2009 в 21:32
поделиться

6 ответов

Немного истории могло бы помочь в Вашем решении. Когда Apple рассматривала, какой механизм использовать в создании Safari они посмотрели на Геккона, но решили пойти с KHTML, разветвить ее и назвали ее WebKit. Их причины того, чтобы сделать это было то, что Геккон имел тонны хлама прежней версии, все еще оставшегося из Netscape, и был намного более сложным.

KHTML/WebKit был более новым, и таким образом имел менее прежней версии. Это было также инструментом для очистки, более быстрым, и лучше зарегистрировало.

Одна из целей Firefox 3 состояла в том, чтобы очистить кодовую базу и упростить его. Из того, что я услышал, что они действительно делали это, но я не знаю, как это соответствует текущим повторениям WebKit. Это, по-видимому, не было достаточно для Google, когда они сделали Chrome, и у них есть значительная доля в Firefox.

См. здесь для получения дополнительной информации.

8
ответ дан 30 November 2019 в 08:48
поделиться

Я смещаюсь, но если Вы не возражаете использовать (LGPL-редактор) QT, что относительно того, чтобы использовать QtWebKit? Довольно легко встроить, межплатформенный, конечно, имеет хорошую демонстрацию веб-браузера и также другой связанные примеры .

5
ответ дан 30 November 2019 в 08:48
поделиться

Это зависит от Ваших потребностей. Даже WebKit может быть излишеством, если Вы просто хотите отобразить простой HTML. В некоторых моих приложениях я использую wxHTML вместо этого. Это - компонент из wxWidgets библиотеки (не уверенный, если можно использовать его без wx хотя). Это легко, поддержки просто основной материал HTML (некоторая поддержка CSS могла бы быть доступной в следующей версии), и имеет действительно хороший wxHtmlEasyPrinting контроль, который дает хороший предварительный просмотр и также печатает очень хорошо. Что касается межплатформенного, wxWidgets работает над Windows, Linux, Mac и некоторыми другими системами, так, чтобы, конечно, соответствовал бы Вашим требованиям.

я не рекомендую идти по Gecko road. Возможно интегрировать его, но намного более трудно сделать, чем KHTML/Webkit - просто, потому что Геккон не был создан со встраиванием в памяти.

4
ответ дан 30 November 2019 в 08:48
поделиться

Попытайтесь выбрать WebKit, поскольку он используется многими различными браузерами (Konqueror, Safari и Google Chrome). Это делает WebKit более универсальным и более адаптируемым к другим потребностям.

разработка Геккона очень связывается Firefox. Много модификаций, сделанных Геккону, сделано, потому что Firefox диктует их. Например, Firefox 3 решил, что собирался заблокировать все сам подписанные сертификаты в целях безопасности. Реализация была сделана в механизм Геккона, что означает, что любому приложению, которое решает встроить Геккона, добавили это ограничение безопасности к ним.

, Если можно остаться с WebKit как он главным образом механизм визуализации для страниц HTML. Это было разработано с намерением, которое будет использоваться среди другого веб-браузера. В то время как Геккон является, прежде всего, механизмом визуализации единственного браузера, который просто, оказывается, предлагает API для встраивания.

2
ответ дан 30 November 2019 в 08:48
поделиться

Я думаю, что предложил бы Safari/Chrome механизм WebKit, который был получен из KHTML, механизма визуализации Konqueror.

3
ответ дан 30 November 2019 в 08:48
поделиться

Моим пониманием является WebKit, довольно хороший & меньший, чем Геккон. У геккона, как предполагается, недавно была модернизация, которая делает его довольно сопоставимым, все же.

0
ответ дан 30 November 2019 в 08:48
поделиться
Другие вопросы по тегам:

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