我有一个由char和integer组成的字符串。例如,
Business Call Numbers:
US Toll Free 1-009-123-8924
UK Toll Free 08081234567
India Toll Free 180012345678
Chennai Number 044222
Bangalore Number 0802214434
Conference Bridge 4542316572
现在我想在免费后获取数字并将其存储在一个数组中,其他数字存储在另一个数组中。我很清楚它可以很容易地完成但是,我不知道使用哪种方法?正则表达式(indexof(),contains(),matches()等)。
任何人都可以分享您的经历吗?
答案 0 :(得分:1)
根据您的输入
尝试在输入中使用lastIndexOf(" ");
方法。
它会返回您所需要的最后一个空格的位置。
然后你可以获得下一个字符串,这是你的电话号码。
public class Test {
public static void main(String[] args) {
String str1 = "US Toll Free 1-009-123-8924";
int pos = str1.lastIndexOf(" ");
String s[] = str1.subString(pos); //kind of
//your s[1] is what you need
}
}
答案 1 :(得分:1)
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test {
public static void main(String[] args) {
String str1 = "US Toll Free 1-009-123-8924 UK Toll Free 08081234567 India Toll Free 180012345678 ";
String numPattern = "\\d[-\\d]*\\d";
Pattern pattern = Pattern.compile(numPattern);
Matcher matcher = pattern.matcher(str1);
while (matcher.find()) {
System.out.println(matcher.group());
}
}
}
免费后的电话号码
String str1 = "US Toll Free 1-009-123-8924 UK Toll Free 111 UK Toll sime 222 India Toll Free 333 ";
String numPattern = "(toll free )\\d[-\\d]*\\d";
Pattern pattern = Pattern.compile(numPattern);
Matcher matcher = pattern.matcher(str1.toLowerCase());
while (matcher.find()) {
System.out.println(matcher.group().replace("toll free ", ""));
}
答案 2 :(得分:0)
您可以使用Pranalee所示的Pattern / Matcher,但请使用此正则表达式“[0-9 - ] +”。
答案 3 :(得分:0)
使用示例数字,看起来数字中没有空格并且也位于一行的末尾,因此您可以使用.split(“”),它将使用空格作为分隔符。
String a = "US Toll Free 1-009-123-8924";
String[] b = a.split(" ");
String number = b[b.length-1];
if(b.length>2){
String sToCheck = b[b.length-3] + " " + b[b.length-2];
if(sToCheck.equals("Toll Free")){
//Add to the toll free array
}
}else{
//Add to the non toll free array
}
答案 4 :(得分:0)
尝试,
public static void main(String[] args) {
String str1 = "US Toll Free 1-009-123-8924 ABC";
String str2 = "UK Toll Free 08081234567 ABC";
String str3 = "India Toll Free 180012345678";
String str4 = "India Toll Free 180012345678";
if(str1.contains("Toll Free") || str1.contains("store") ){
//Store it one array
}
else{
//Use other array.
}
System.out.println(getMatch(str1));
System.out.println(getMatch(str2));
System.out.println(getMatch(str3));
System.out.println(getMatch(str4));
}
private static String getMatch(String input) {
return input.replaceAll("[a-zA-Z ]+","");
}