我想從masterArray
中的字母中拆分數字,並將它們分別存儲在ArrayList
(splitInteger
,splitString
)中。目前,我的號碼爲splitInteger
ArrayList
,但splitString
ArrayList
中的字母未正確分隔。使用正則表達式從字符串中分割數字
splitString
ArrayList
有額外的空格,逗號和ArrayList
中的元素順序不正確。
輸出應該如下:
[55CC, 1C, 255D, 0F]
[55, 1, 255, 0]
[CC, C, D, F]
目前,輸出如下:
[55CC, 1C, 255D, 0F]
[55, 1, 255, 0]
[, CC, , C, , D, , F]
我試着與我的removeNumbers可變正則表達式搞亂,但是不知道很多關於正則表達式。
import java.util.ArrayList;
public class SplitArrayExample {
public static void main(String[] args)
{
int convertValue = 0;
// Using Regular Expressions to remove Characters
String removeLetters = "([A-z]+)";
String removeNumbers = "([0-9]+)";
// This is the master list.
ArrayList<String> masterArray = new ArrayList<String>();
masterArray.add("55CC");
masterArray.add("1C");
masterArray.add("255D");
masterArray.add("0F");
// These are used to split the integer and string characters
ArrayList<Integer> splitInteger = new ArrayList<Integer>();
ArrayList<String> splitString = new ArrayList<String>();
for (String element : masterArray)
{
// Used to split the strings
String[] removingLetterCharacters = element.split(removeLetters);
String[] removingNumberCharacters = element.split(removeNumbers);
// This for-each loop removes letter values and converts numbers to integer values
for(String addObject : removingLetterCharacters)
{
convertValue = Integer.parseInt(addObject);
splitInteger.add(convertValue);
}
// This for-each loop removes the integer values
for(String addObject : removingNumberCharacters)
{
splitString.add(addObject);
}
}
System.out.println(masterArray);
System.out.println(splitInteger);
System.out.println(splitString);
}
}
謝謝@manouti,這個偉大工程! – ChaseHardin
@YoungandFree檢查我的更新答案。 split可能不適用於更復雜的數字和字母組合。 – manouti