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

  • RegEx para encontrar URL en HTML tarda 25 segundos en Java / Android
  • Expresión regular de Android: devuelve la cadena correspondiente
  • Android: ¿dividido en un salto de línea en String? (Párrafos)
  • Problema que coincide con el patrón regex en Android
  • Android enlaza sin primer carácter
  • Diferencia de regex de Java y Android
  • Cómo utilizar la expresión regular en android
  • División de la cadena con RegEx en Android
  • Divide la cadena en la última aparición del carácter
  • ¿Qué significa * + en regexp
  • Editar texto aceptar sólo números no números decimales en android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.