Tengo una lista de elementos web almacenados en un ArrayList de cadenas de la siguiente manera:

ArrayList<String> prints out [€300, €34, €56]

¿Cómo elimino el signo € ?. He intentado remove() y otro método, pero no funcionan. Sin embargo, es un ArrayList.

-1
Ola 10 sep. 2018 a las 07:40

8 respuestas

La mejor respuesta

Simplemente recorra su lista y use String::replaceAll

    List<String> list = new ArrayList <String>();
    list.add("$123");
    list.add("$345");
    list.add("12345");

    for (String s : list) {
        System.out.println(s.replaceAll("^\\$", ""));
    }

Si desea actualizar el valor en List puede usar List::set

2
Scary Wombat 10 sep. 2018 a las 04:57

También puedes usar esta expresión regular,

  List<String> myList = new ArrayList<String>();
  myList.add("$14");
  myList.add("$55");
  myList.add("$500");
  System.out.println(myList);
   for (int i = 0; i < myList.size(); i++) {
     myList.set(i, myList.get(i).replaceAll("^[^\\d]+", ""));
  }
  System.out.println(myList);

Demo

1
Nambi_0915 10 sep. 2018 a las 05:03

Recorrería los elementos y simplemente cortaría el primer carácter (suponiendo que el símbolo del euro esté en cada uno)

List<String> myList = new ArrayList<>();
...
for (int i = 0; i < myList.size(); i++) {
    myList.set(i,myList.get(i).substring(1));
}

Solución alternativa en caso de que el primer carácter no sea siempre el símbolo del euro.

List<String> myList = new ArrayList<>();
...
for (int i = 0; i < myList.size(); i++) {
    myList.set(i,myList.get(i).replace((char)8364,(char)0));
}
0
faris 10 sep. 2018 a las 04:59

Recorra su lista de precios y reemplace el símbolo del euro como:

for (String price : prices) {
        price.replaceAll("^\\$", "");
    }
0
user9325153user9325153 11 sep. 2018 a las 02:30

El siguiente código funciona según sus requisitos.

  List<String> myList = new ArrayList<String>();
  myList.add("#14");
  myList.add("#55");
  myList.add("#500");
  System.out.println(myList);
  for (int i = 0; i < myList.size(); i++) {
      myList.set(i,myList.get(i).substring(1));
  }
  System.out.println(myList);

Salida: [# 14, # 55, # 500] [14, 55, 500]

-1
Hisat 11 sep. 2018 a las 06:23

Prueba con esto usando la API de flujo de Java 8.

List<String> prices = Arrays.asList("€300", "€34", "€56");
prices = prices.stream().map(s -> s.substring(1)).collect(Collectors.toList());
System.out.println(prices); // [300, 34, 56]
0
SHRIN 10 sep. 2018 a las 06:47

Puedes usar replaceAll("^\\$", "") en tu ArrayList.

0
Raj 10 sep. 2018 a las 04:52

No está realmente claro qué quieres. ¿Una nueva lista con elementos recortados, simplemente imprimiendo los elementos sin el símbolo del Euro u otra cosa? ¿El euro está al comienzo de algún elemento, puede ocurrir varias veces? Etc ... Aquí es solo una idea:

List<String> list = Arrays.asList("€14", "€55", "€500");
System.out.println(list);

List<String> trimmedList =
    list.
        stream().
        map(s -> s.startsWith("€") ? s.substring(1) : s).
        collect(Collectors.toList());

System.out.println(trimmedList);

Imprime:

[€14, €55, €500]
[14, 55, 500]
1
Lachezar Balev 10 sep. 2018 a las 05:00