“replaceAll ()” в java оно не функционирует правильно

Хорошие,

Я использую маленькую линию кода, чтобы отлаживать информацию о ценах, полученную через "scrap". Ввиду того, что я получаю различных стран, у меня есть различные монеты и я хочу оставить чистое число.

Для этого я использую:

price.select("span").first().text().replace(".", "").replaceAll("SG$|CAD|R$|HUF|€|₽|incl. GST|$|R|₹|£|¥|₩|NT$","")

Какова проблема? Так как, что есть 3 символа, которых он не лишает меня: $, SG$ (монета singapur) и NT$ (деньги Тайваня).

Такой который, мог бы понимать, что монета Тайваня не функционировал хорошо, так как перед тем, как заменять NT$, - замена доллара ($), я понимаю, что у меня был бы должен оставаться тогда NT. Однако он не перемещает ни вещи, ни другой.

Я только что не нашел проблему, оставшуюся часть символов да, которая снимает их.

1
задан 12.03.2017, 02:26
5 ответов

Хорошие,

Она soluciГіn в конце концов был этим:

price.select("s").first().text().replace(".", "").replaceAll("SG\\$|CAD|R\\$|HUF|€|₽|incl. GST|NT\\$|R|₹|£|¥|₩|\\$","")); 
1
ответ дан 24.11.2019, 10:37

Помни, что такие специальные символы как $ в html представляются с одним cГіdigo, и не буквальный

AsГ - эквивалента $ $

тогда он меняется ты повторно нравится включая cГіdigo и не буквальный.

- то, что случается со мной, что podrГ, - когда это

, Здесь есть таблица со специальными символами http://www.degraeve.com/reference/specialcharacters.php

1
ответ дан 24.11.2019, 10:37
  • 1
    Я не понял хорошо, что $ - $. – JetLagFox 12.03.2017, 14:58
  • 2
    @JetLagFox не закрепили, что меня интерпретировал có я говорю, но уже обновите ответ – Carlos Cocom 12.03.2017, 15:28
  • 3
    Я попытался с этим, но оно я не функционирует: price.select(".price-disclaimer span").first().ownText().replace(",", ".").replaceAll("SG&#36|CAD|R&#36|HUF|€|₽|incl. GST|NT&#36|R|₹|£|¥|₩|&#36","") – JetLagFox 12.03.2017, 16:21
  • 4
    тебе осталось включать "; " точка с запятой - часть có я говорю – Carlos Cocom 13.03.2017, 08:51

EDIT у цепи, которую ты хочешь заменить, есть несколько проблем, podrГ - в quizГЎ решать с regex, но... например, в часть проблемы со знаком $, ты просишь у него заменять тебе точки и внутри монет у тебя есть стоимость с точкой (.).

Тогда, выдвинул эту тебе soluciГіn. Функционируй создавая воображаемую цепь:

public class Reemplazar
{
  public static void main(String[] args)
  {
    /* CADENA IMAGINARIA: 
     * Para tu código usa esta variable:
     * String sSinMoneda=price.select("span").first().text(); 
     * La de abajo es para probar el programa
     */

    String sSinMoneda="SG$100. $1000 SG$1000 200NT$ 1CAD 50HUF 20€ ₽456 incl. GST 6875 R45 ₹67 £658 ¥89 ₩234 NT$142";

    //Este valor tiene un punto (.) por lo tanto reemplazamos antes que reemplazar el . sólo
    sSinMoneda = sSinMoneda.replace("incl. GST", "");
    sSinMoneda = sSinMoneda.replace(".", "");
    sSinMoneda = sSinMoneda.replaceAll("CAD|HUF|€|₽|incl. GST|R|₹|£|¥|₩","");
    //Todos los reemplazos con el signo $
    sSinMoneda = sSinMoneda.replace("SG$","");
    sSinMoneda = sSinMoneda.replace("R$","");
    sSinMoneda = sSinMoneda.replace("NT$","");

    //Dejamos a $ sólo para el final
    sSinMoneda = sSinMoneda.replace("$","");

    System.out.println(sSinMoneda);
  }
}

Оказавшиеся

100 1000 1000 200 1 50 20 456 6875 45 67 658 89 234 142

0
ответ дан 24.11.2019, 10:37

Твоя проблема состоит в том, что ты хочешь использовать как символы, в которые они представляют другие вещи ( видеть documentaciГіn ):
1. - carГЎcter . представляет любой carГЎcter (поэтому видно, что ты сделал это отдельным, но ты это можешь включать в regexp)
2.-El carГЎcter $ представь конец lГ-nea

, Чтобы помечать один carГЎcter в частности envuГ©lvelo между квадратными скобками []. Если меняешь ты expresiГіn регулировать из-за той cГіdigo, что прикрепил тебя, оно должно тебе функционировать (он включает tambiГ©n точку и ты уберегаешься другой replace):

String ejemplo = "SG$100. $1000 SG$1000 200NT$ 1CAD 50HUF 20€ ₽456 incl. GST 6875 R45 ₹67 £658 ¥89 ₩234 NT$142";
ejemplo = ejemplo.replaceAll("SG[$]|CAD|R[$]|HUF|€|₽|incl. GST|[$]|R|₹|£|¥|₩|NT[$]|[.]","");
System.out.println(ejemplo);

С этим вывод:

100 1000 1000 200 1 50 20 456 6875 45 67 658 89 234 142

-1
ответ дан 24.11.2019, 10:37

Хорошие, попытайся помещать перед '$' перевернутый брусок '\', asГ - например:

replaceAll("SG$|CAD|R$|HUF|€|₽|incl. GST|$|R|₹|£|¥|₩|NT$","")
0
ответ дан 24.11.2019, 10:37
  • 1
    Я не вижу никакого перевернутого бруска. – ArtEze 13.03.2017, 14:38
  • 2
    Ты имеешь в виду SG\$ или NT\$... Твой ответ он это не разъясняет очень. – Muriano 13.03.2017, 15:08
  • 3
    Он это не составляет, потому что он не признает \$ последовательностью утечки. Форма состоит в том, чтобы завертывать это между квадратными скобками [$] для того, чтобы он отнесся к этому как к cará cter, поскольку я поместил в моем ответе. – Awes0meM4n 13.03.2017, 15:38