Cómo analizar un url de una cadena en android?

Quiero analizar la url de una cadena en android. El ejemplo String es

"This is a new message. The content of the message is in 'http://www.example.com/asd/abc' " 

Quiero analizar la url http://www.example.com/asd/abc de la cadena sin usar el método subString.

Actualizado:

Puede utilizar la expresión regular con la expresión regular Patterns.WEB_URL para buscar todas las url en su texto.


Original:

Puede utilizar la función Uri.parse(String uriString) .

Utilizar esta:

 public static String[] extractLinks(String text) { List<String> links = new ArrayList<String>(); Matcher m = Patterns.WEB_URL.matcher(text); while (m.find()) { String url = m.group(); Log.d(TAG, "URL extracted: " + url); links.add(url); } return links.toArray(new String[links.size()]); } 

Si es posible. Pruebe con el código siguiente muestra

 ArrayList retrieveLinks(String text) { ArrayList links = new ArrayList(); String regex = "\\(?\\b(http://|www[.])[-A-Za-z0-9+&@#/%?=~_()|!:,.;]*[-A-Za-z0-9+&@#/%=~_()|]"; Pattern p = Pattern.compile(regex); Matcher m = p.matcher(text); while(m.find()) { String urlStr = m.group(); char[] stringArray1 = urlStr.toCharArray(); if (urlStr.startsWith("(") && urlStr.endsWith(")")) { char[] stringArray = urlStr.toCharArray(); char[] newArray = new char[stringArray.length-2]; System.arraycopy(stringArray, 1, newArray, 0, stringArray.length-2); urlStr = new String(newArray); System.out.println("Finally Url ="+newArray.toString()); } System.out.println("...Url..."+urlStr); links.add(urlStr); } return links; } 

Gracias Deepak

Sólo puede crear una nueva URL que pase la cadena como argumento al constructor. A continuación, puede utilizar los diversos métodos de la clase URL para acceder a las diferentes partes de la URL.

OK, veo que esto no es lo que querías decir. Probablemente podría usar una expresión regular, pero usar la subcadena es el método más fácil. ¿Por qué no quieres usarlo?

Si la cadena siempre será similar, una solución rápida sería usar un StringTokenizer en la única comilla. Entonces simplemente tomaría la segunda ficha.

  • Buscar la posición real de un ImageView
  • ¿Es posible enviar comandos HDMI CEC desde un dispositivo Android?
  • ¿Cuál es el punto de crear una clase abstracta sobre la implementación sin variables de miembro?
  • Obtener datos de una base de datos vs obtener datos de un mapa hash
  • ¿Por qué no están dibujando mis puntos de vista?
  • Biblioteca de archivos de Android (aar) vs jar estándar
  • ¿Es seguro usar esta forma de pasar el contexto a clases sin contexto
  • JSON VS simple manipulación de cadenas para analizar HttpRequest en Android
  • Error del conmutador. Eclipse IDE para desarrollo de Android en Mac: Cambiar el cumplimiento del espacio de trabajo a JRE 1.7
  • Java / Android HttpURLConnection setChunkedStreamingMode no funciona con todos los servidores PHP
  • Cómo eliminar el ". 0" en un número entero cuando se utiliza doble en java?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.