2014-02-20 3 views
0

У меня есть строка, «004-034556», что я хочу разделить на две строки:Разбиение строки через другие способы

string1 = "004" 
string2 = "034556" 

Это означает, что первая строка будет содержать символы перед «-», а вторая строка будет содержать символы после '-'. Я также хочу проверить, есть ли в нем строка «-». Если нет, я сделаю исключение. Как я могу это сделать?

Теперь один из способов достижения этой цели является ...

public static String[] SplitUsingTokenizer(String Subject, String Delimiters) 
{ 
    StringTokenizer StrTkn = new StringTokenizer(Subject, Delimiters); 
    ArrayList<String> ArrLis = new ArrayList<String>(Subject.length()); 
    while(StrTkn.hasMoreTokens()) 
    { 
     ArrLis.add(StrTkn.nextToken()); 
    } 
    return ArrLis.toArray(new String[0]); 
} 
+1

[ 'StringTokenizer'] (http://docs.oracle.com/javase/7/docs/api/java /util/StringTokenizer.html) - это унаследованный класс. Если вы прочтете его документы, он явно попросит вас использовать метод 'split()' класса String. Простой 'str.split (" - ")' будет работать для вас. – SudoRahul

+0

Я предлагаю использовать имена переменных с строчной буквой. http://www.oracle.com/technetwork/java/javase/documentation/codeconventions-135099.html#367 –

ответ

1

Попробуйте это:

String[] spilited = abc.split("-"); 
if(spilited.size() == 0){ 
    throw new RuntimeException("String doesn't contain '-'); 
} 
0
String[] array = givenString.split("-"); 

и проверить его,

if(givenString.contains("-")) return true; 
2

Вы можете сделать это таким образом:

String str = "004-034556"; 

if (str.contains("-")) { // Check if str contains "-" 
    String strSplit[] = str.split("-"); 
} 
else { 
    // Throw exception 
} 

strSplit[0] ==> 004

strSplit[1] ==> 034556

0
public class SplitException extends Exception{ 
    ... 
    ... 
} 

public String[] customSplit(String str, String splitter) { 

    String[] splitted = str.split(splitter); 
    if (splitted.size() == 0) 
     throw new SplitException(); 
    return splitted; 
} 

try { 
    customSplit("004-034556", "-"); 
} 
catch(SplitException se) { 
    se.printStackTrace(); 
} 
Смежные вопросы