Matcher.replaceAll () y String.replaceAll () no parecen funcionar en Galaxy S 6

Necesito quitar algunos caracteres de una cadena. Actualmente estoy intentando eliminar '' (espacio) y '-' (guión). He intentado dos maneras. Ambos trabajan en un Nexus 5X con Android N Beta. Ninguno de ellos funciona en un Samsung Galaxy S 6 con Android M.

Primer enfoque:

String normalizedNumber = phoneNumber.replaceAll("[ -]", ""); 

Segundo enfoque:

 Pattern pattern = Pattern.compile("[ -]"); String normalizedNumber = pattern.matcher(phoneNumber).replaceAll(""); 

¿Cómo pueden estas clases básicas dar resultados diferentes? ¿Qué estoy haciendo mal?

Prueba (capturas de pantalla del depurador, tomadas en diferentes PC, es por eso que se llaman diferentes):

Aquí está Nexus

Nexo Aquí está Samsung

Samsung

2 Solutions collect form web for “Matcher.replaceAll () y String.replaceAll () no parecen funcionar en Galaxy S 6”

¿Podría usted intentar con la aproximación 1 con la modificación abajo:

 String normalizedNumber = phoneNumber.replace(" ","").replace("-",""); 

Espero que esto funcione en cualquier entorno, ya que es un enfoque de reemplazo de caracteres directo donde como replaceAll es siempre un enfoque de patrón compilado de coincidencia de los personajes

Mistery resolvió. Cuando se utiliza String.charAt() para analizar la cadena, resulta que los espacios no eran simples espacios después de todo, sino " espacios no rompientes " (código 160). Cambiar el código para eliminar todos los espacios en blanco lo arregló:

 String normalizedNumber = phoneNumber.replaceAll("[\\s-]", ""); 

El código estaba dando diferentes resultados en diferentes teléfonos, porque los números procedían de la Intersección del selector de contactos. Parece que los teléfonos Samgung almacenan los espacios en números diferentes de los teléfonos Nexus.

Gracias a todos por su ayuda.

https://en.wikipedia.org/wiki/Non-breaking_space

  • Java no funciona con regex \ s, dice: inválido secuencia de escape
  • Buscar una subcadena entre ciertos caracteres en un índice desconocido
  • ReplaceAll no reemplaza string
  • División de la cadena con RegEx en Android
  • ¿Cómo puedo eliminar el "+" y el código del país de un número de teléfono?
  • Android enlaza sin primer carácter
  • Regex <img> Análisis de etiquetas con src, width, height
  • Uso de regex y android para categorizar diferentes campos
  • Excluir etiquetas HTML y algunos caracteres UNICODE mientras busca en SQLite
  • Número de tarjeta de validación de la validación de la expresión regular
  • Regex no funciona en Android pero funciona bien en Java
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.