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.
- Diferenciación de la compilación de depuración y producción de una aplicación para Android
- Cómo ejecutar una aplicación en primer plano en las versiones de Android inferiores a 5.1
- Cómo comprobar si un cuerpo casi ha dejado de moverse en libgdx + box2d
- Loopj Android Async Http - onFailure no disparado
- EXCEPCIÓN FATAL: main java.lang.RuntimeException: El contenido tiene vista con el atributo id 'android.R.id.list' que no es una clase ListView
- Retrofit "Autorización", "Portador" + token
- Determinación de la memoria disponible en Android
- Caracteres especiales en Android
- Problemas con pantallas de preferencias de doble panel
- No se pudo cargar (encontrar) la biblioteca j2v8_android_x86
- Proyecto Eclipse en mercurial
- Haciendo clic dos veces en el botón Atrás para salir de una actividad
- Usando la casilla de verificación para filtrar contactos y obtener el número de teléfono
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.
- Compilación demo de achartengine, pero error de tiempo de ejecución
- Cómo actualizar la vista de imagen inmediatamente