2017-01-07 13 views

答えて

1

あなたはループがあなたの文字列ことができ、あなたの文字列一つずつテスト:

まず

文字列を分割する必要があります。

String myString = "a:10,b:15,c:20,d:30"; 
//split the String to get only the Strings and int in your case you need to split with , and : 

String mixedString[] = myString.split(":|\\,"); 

第二

テスト文字列は整数その後、文字列の配列にそれを挿入してtrueを返すと整数の配列にそれを挿入し、それ以外の場合:

public static boolean test(String s){ 
    try{ 
     Integer i = Integer.parseInt(s); 
     return true; 
    }catch(Exception e){ 
     return false; 
    } 
} 

ここでは、あなたのプログラムは次のようになりべきか:

public static void main(String[] args) { 
    String myString = "a:10,b:15,c:20,d:30"; 
    String mixedString[] = myString.split(":|\\,"); 
    String requiredArray1[] = new String[mixedString.length]; 
    int requiredArray2[] = new int[mixedString.length]; 
    int s = 0; 
    int n = 0; 
    for (int i = 0; i < mixedString.length; i++) { 
     if (!test(mixedString[i])) { 
      requiredArray1[s] = mixedString[i]; 
      s++; 
     } else { 
      requiredArray2[n] = Integer.parseInt(mixedString[i]); 
      n++; 
     } 
    } 
} 

public static boolean test(String s) { 
    try { 
     Integer i = Integer.parseInt(s); 
     return true; 
    } catch (Exception e) { 
     return false; 
    } 
} 
+1

@Banku私は私の答えを編集し、これはあなたを助ける必要があります:) –

1

すべてのアルファの文字がコロン区切り文字(:)と数値VAの文字列表現が続く常にここで、あなたの記事に表示として、あなたの混合文字列がある場合実際には、数値が存在するかどうかをテストするための追加のメソッドは必要ありません。あなたは単にアルファ値がそこにあることを知っているのと同じようにそこにあることを知っているだけでも...あるいは多分あなたもそうではないかもしれませんし、おそらくあなたはアルファもテストするべきです。あなたは、混在した文字列内に存在する可能性のあるものをあなたの投稿内に指定することはありません。したがって、次のように仮定できます。

すべてのアルファセクションはコロン(:)で区切られ、その後は実際には整数と見える数値の文字列表現が続きます。この後にコンマ(、)区切り文字とコロン区切りアルファベット/数字のペアが続きます。

String mixedString = "a:10,b:15,c:20,d:30"; 
System.out.println("Original String: \"" + mixedString + "\"\n"); 

String[] mStringArray= mixedString.split(","); 
String[] alphaArray = new String[mStringArray.length]; 
int[] numericArray = new int[mStringArray.length]; 

for (int i = 0; i < mStringArray.length; i++) { 
    String[] tmp = mStringArray[i].split(":"); 
    alphaArray[i] = tmp[0]; 
    numericArray[i] = Integer.parseInt(tmp[1]); 
} 

// Display contents of the two Arrays 
System.out.println("Elements From Alpha Array"); 
for (int i = 0; i < alphaArray.length; i++) { 
    System.out.println(alphaArray[i]); 
} 

System.out.println("\nElements From Numeric Array"); 
for (int i = 0; i < numericArray.length; i++) { 
    System.out.println(numericArray[i]); 
} 
1
public static void main(String[] args) { 
    String myString = "a:10,b:15,c:20,d:30"; 
    // extract all numbers (All elements are numbers so you can convert it to int easily) 
    String[] requiredArray1 = extractAllAccordingToRegex("\\d+", myString); 
    // extract all characters   
    String[] requiredArray2 = extractAllAccordingToRegex("[a-zA-Z]+",myString); 
    } 

    static String[] extractAllAccordingToRegex(String inputRegex, String input) { 
    List<String> extractedItems = new ArrayList<String>(); 
    Pattern reg = Pattern.compile(inputRegex); 
    Matcher m = reg.matcher(input); 
    while (m.find()) { 
     extractedItems.add(m.group()); 
    } 
    return extractedItems.toArray(new String[1]); 
    } 
関連する問題