如何在包含超過 1 位或 2 位數字的數字字串中將 Java 中的一組數字準確分開?例如,我只需要將字串中大于 1 或 2 位的組中的數字分開:12,10,12914,10,641,10,11,11,2,10。
另外,如何在不分離所有元素的情況下在 Java 中分離/拆分陣列中的某些元素?例如,我需要將字母與數字分開,并在這組元素中將 12 與 9 分開,將 6 與 4 分開:[12a, 129, 14a, 64, 1a, 11b, 2a]。
謝謝你的幫助!
uj5u.com熱心網友回復:
您可以拆分字串,因為它們是逗號分隔的,然后遍歷每個數字并僅分隔那些符合您的條件的數字。
String str = "12,10,12914,10,641,10,11,11,2,10";
str[] ary = str.split(",");
for (str s : ary) {
if ( s.length() > 1 ) {
//separate the contents of the string as you want
}
}
uj5u.com熱心網友回復:
你可以這樣做。
在第一種情況下:
- 拆分
,可能被空白包圍的字串。 - 過濾字串 > 長度為 2
- 轉換為整數并存盤在串列中。
String s1 = "12,10,12914,10,641,10,11,11,2,10";
List<Integer> list1 = Arrays.stream(s1.split("\\s*,\\s*"))
.filter(str -> str.length() > 2).map(Integer::valueOf)
.toList();
System.out.println(list1);
印刷
[12914, 641]
在第二種情況下
- 和以前一樣分割。
- 將沒有最后一個字符(字母或數字)的字串轉換為整數。這是使用
String.substring方法。 - 在串列中回傳。
String s2 = "2a, 129, 14a, 64, 1a, 11b, 2a";
List<Integer> list2 = Arrays.stream(s2.split("\\s*,\\s*"))
.map(str -> Integer.valueOf(
str.substring(0, str.length() - 1)))
.toList();
System.out.println(list2);
印刷
[2, 12, 14, 6, 1, 11, 2]
在第二種情況下,如果專案以多個非數字字符結尾或長度至少為 2,則會引發例外。
uj5u.com熱心網友回復:
如果對你有幫助
public class Main
{
public static String example1(int[] in) {
String msg = "Example 1\n";
for(int idx=0; idx<in.length; idx ) {
msg = in[idx] ":";
String str=String.valueOf(in[idx]);
boolean split = false;
for(int i=1; i<str.length(); i ) {
char x = str.charAt(i-1);
char y = str.charAt(i);
if (x!=y && i == 1) {
msg = " " x;
}
if (x!=y) {
msg = " " y;
}
}
msg = "\n";
}
msg = "Done";
return msg;
}
public static void main(String[] args) {
int[] in = new int[] {12,10,12914,10,641,10,11,11,2,10};
String msg = example1(in);
System.out.println(msg);
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/310954.html
標籤:爪哇
