Быстрый и грязный 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;
}
}
Немного истории могло бы помочь в Вашем решении. Когда Apple рассматривала, какой механизм использовать в создании Safari они посмотрели на Геккона, но решили пойти с KHTML, разветвить ее и назвали ее WebKit. Их причины того, чтобы сделать это было то, что Геккон имел тонны хлама прежней версии, все еще оставшегося из Netscape, и был намного более сложным.
KHTML/WebKit был более новым, и таким образом имел менее прежней версии. Это было также инструментом для очистки, более быстрым, и лучше зарегистрировало.
Одна из целей Firefox 3 состояла в том, чтобы очистить кодовую базу и упростить его. Из того, что я услышал, что они действительно делали это, но я не знаю, как это соответствует текущим повторениям WebKit. Это, по-видимому, не было достаточно для Google, когда они сделали Chrome, и у них есть значительная доля в Firefox.
См. здесь для получения дополнительной информации.
Я смещаюсь, но если Вы не возражаете использовать (LGPL-редактор) QT, что относительно того, чтобы использовать QtWebKit? Довольно легко встроить, межплатформенный, конечно, имеет хорошую демонстрацию веб-браузера и также другой связанные примеры .
Это зависит от Ваших потребностей. Даже WebKit может быть излишеством, если Вы просто хотите отобразить простой HTML. В некоторых моих приложениях я использую wxHTML вместо этого. Это - компонент из wxWidgets библиотеки (не уверенный, если можно использовать его без wx хотя). Это легко, поддержки просто основной материал HTML (некоторая поддержка CSS могла бы быть доступной в следующей версии), и имеет действительно хороший wxHtmlEasyPrinting контроль, который дает хороший предварительный просмотр и также печатает очень хорошо. Что касается межплатформенного, wxWidgets работает над Windows, Linux, Mac и некоторыми другими системами, так, чтобы, конечно, соответствовал бы Вашим требованиям.
я не рекомендую идти по Gecko road. Возможно интегрировать его, но намного более трудно сделать, чем KHTML/Webkit - просто, потому что Геккон не был создан со встраиванием в памяти.
Попытайтесь выбрать WebKit, поскольку он используется многими различными браузерами (Konqueror, Safari и Google Chrome). Это делает WebKit более универсальным и более адаптируемым к другим потребностям.
разработка Геккона очень связывается Firefox. Много модификаций, сделанных Геккону, сделано, потому что Firefox диктует их. Например, Firefox 3 решил, что собирался заблокировать все сам подписанные сертификаты в целях безопасности. Реализация была сделана в механизм Геккона, что означает, что любому приложению, которое решает встроить Геккона, добавили это ограничение безопасности к ним.
, Если можно остаться с WebKit как он главным образом механизм визуализации для страниц HTML. Это было разработано с намерением, которое будет использоваться среди другого веб-браузера. В то время как Геккон является, прежде всего, механизмом визуализации единственного браузера, который просто, оказывается, предлагает API для встраивания.
Я думаю, что предложил бы Safari/Chrome механизм WebKit, который был получен из KHTML, механизма визуализации Konqueror.
Моим пониманием является WebKit, довольно хороший & меньший, чем Геккон. У геккона, как предполагается, недавно была модернизация, которая делает его довольно сопоставимым, все же.