muszę usunąć wszystkie rodzaje "internetowych" z początków mojego StringUsuń URL prefiks z String (http:/www, etc.)
Moja TextView musi być bez "http: //", „http : // www. " "www." i inne prefiksy adresów URL.
Czy możesz mi w tym pomóc?
muszę usunąć wszystkie rodzaje "internetowych" z początków mojego StringUsuń URL prefiks z String (http:/www, etc.)
Moja TextView musi być bez "http: //", „http : // www. " "www." i inne prefiksy adresów URL.
Czy możesz mi w tym pomóc?
Można to zrobić za pomocą wyrażenia regularnego
"www.aaa".replaceFirst("^(http[s]?://www\\.|http[s]?://|www\\.)","")
To nie jest dobry pomysł, adres URL może zawierać "www". gdzieś indziej. Na przykład '" http://mywww.com "'. – matiash
@matiash masz rację. Poprawiłem moją odpowiedź. dzięki. – kingori
Kolejność rozróżniania regex ma znaczenie tutaj - powinna to być 'replaceFirst ("^(http: // www \\. | Http: // | www \\.) "," ")' Do pracy dla 'http : // www. case. – Josh
Można użyć metody String.replace().
http://docs.oracle.com/javase/6/docs/api/java/lang/String.html
można użyć String zastąpić.
String myString = "http://www.abc.com";
myString.replace("http://","").replace("http:// www.","").replace("www.","");
Taki sam komentarz, jak w przypadku zaakceptowanej odpowiedzi, '" www. "' Może być obecny gdzieś w adresie URL, powinieneś usunąć go tylko od początku. – matiash
Zakładam, że kiedy mówisz "początki sieci", masz na myśli "protokoły". Możesz dowiedzieć się więcej o adresach URL w RFC lub wikipedia.
Ogólnie mówiąc, nie można usunąć "www." z adresu URL i zagwarantować, że adres URL wskaże ten sam host. Jeśli wszystko, co chcesz zrobić, to ukryć przed użytkownikiem, to w porządku, ale osobiście uważam, że to denerwujące.
Poniższy kod usunie wszystkie protokoły, o których wie Jawa, a nie tylko http. Nie wszystkie protokoły mają //, więc musisz to sprawdzić ręcznie. Java URL class może rozkładać adres URL dokładnie tak, jak chcesz.
import java.net.URL;
public class test
{
public static void main(String[] args)
{
try {
URL url = new URL(args[0]);
String protocol = url.getProtocol();
String result = args[0].replaceFirst(protocol + ":", "");
if (result.startsWith("//"))
{
result = result.substring(2);
}
System.out.println(result);
} catch (Exception e) {
System.out.println(e);
}
}
}
Użyj wystąpienie URI
i użyć go do dzielenia jednak chcesz:
URI uri = new URI(whateverYourAddressStringIs);
String path = uri.getPath(); // split whatever you need
Nie wiem, nie Android, ale nie istnieje coś takiego jak funkcja zastąpić na ciąg? Wtedy możesz po prostu zamienić te łańcuchy na pusty łańcuch i to jest to ... –
Twoje użycie "początków sieci" mówi mi, że zanim przystąpisz do tego projektu, będziesz musiał nauczyć się podstawowych schematów URI. – Jules