Java:使用第一次出现的分割器从一个字符串中提取两个字符串?

时间:2014-07-20 17:15:42

标签: java

我的字符串看起来像这样:

String a = "URL:www.blahblah.com:/username"

我希望能够在第一次出现:之前提取字符串的第一部分,然后在第一次出现:之后提取字符串的其余部分

所以我最终会:

String one = "URL"
String two = "www.blahblah.com:/username" 

谢谢

4 个答案:

答案 0 :(得分:3)

你有几个选择。您可以使用带有限制的String#split(String, int)

String a = "URL:www.blahblah.com:/username";
String [] res = a.split(":", 2);
System.out.println(Arrays.toString(res));

或者您可以使用indexOf(int)然后将substring与相对索引

一起使用
int pos = a.indexOf(":");
String b = a.substring(0, pos);
String c = a.substring(pos+1);
System.out.printf("part 1 = %s, part 2 = %s%n", b, c);

我在这里得到(分别)

[URL, www.blahblah.com:/username]
part 1 = URL, part 2 = www.blahblah.com:/username

答案 1 :(得分:2)

试试这个:

String a = "URL:www.blahblah.com:/username";
int index = a.indexOf(":");
String before = a.substring(0,index);
String after = a.substring(index+1);

如果你使用split,第二个冒号很重要,你最终会得到3个字符串,即“URL”,“www.blahblah.com”和“/ username”,这不是你的意思我想知道。但请注意,重载方法split(String, int)将帮助您控制应用拆分器模式的次数,因此您仍然可以使用split执行此操作,如下所示:

a.split(":",2);    

Demo

答案 2 :(得分:1)

答案 3 :(得分:1)

String类中有一个名为" split"。的方法 对于您的上述字符串a,您可以使用:

a.split(':', 2);

它返回一个字符串数组。 这里的第一个参数是reg-ex,第二个参数是你想要的字符串数。