は、どのように私はこのような文字列から文字列とint型の値を取得することができます。"a:10,b:15,c:20,d:30"
文字列を配列(intとstring配列)に変換する方法?
String mixedString = "a:10,b:15,c:20,d:30";
String requiredArray1[] = [a,b,c,d];
int requiredArray2[] = [10,15,20,20];
は、どのように私はこのような文字列から文字列とint型の値を取得することができます。"a:10,b:15,c:20,d:30"
文字列を配列(intとstring配列)に変換する方法?
String mixedString = "a:10,b:15,c:20,d:30";
String requiredArray1[] = [a,b,c,d];
int requiredArray2[] = [10,15,20,20];
あなたはループがあなたの文字列ことができ、あなたの文字列一つずつテスト:
まず
文字列を分割する必要があります。
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;
}
}
すべてのアルファの文字がコロン区切り文字(:)と数値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]);
}
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]);
}
@Banku私は私の答えを編集し、これはあなたを助ける必要があります:) –