我有一個字符串:RoomA38
。我想從中提取RoomA
並放入一個String類型的對象,提取3
和8
,並將它們放在兩個不同類型的int.I中,考慮到方法split,但我不知道如何在這種情況下使用它。我該怎麼做?從字符串中提取字符串和int
4
A
回答
3
你能做這樣的事嗎?
String myString = "RoomA38";
StringBuilder sb = new StringBuilder();
List<Integer> numbers = new ArrayList<Integer>();
for(int i=0;i<myString.length();i++){
char c = myString.charAt(i);
if(!Character.isDigit(c)){
sb.append(c);
}else{
numbers.add(Integer.parseInt(c+""));
}
}
String roomString = sb.toString();
for(Integer i : numbers){
//use the number i
}
0
0
使用下面這行,你可以找出一個char
是一個數字。 Character.isDigit('');
你可以遍歷字符串中的每個char
並相應地提取有用的字符。
0
您可以從字符串中提取數字後寫你自己的邏輯來也分開數字。
感謝 蘇尼爾
1
public static void main(String[] args) {
String str = "RoomA3814221";
String pattern = "[0-9]+";
Scanner sc = new Scanner(str);
String result = sc.findInLine(pattern);
String[] arr = result.split("");
System.out.println(result);
System.out.println(arr.length);
for (String s: arr) {
System.out.println(s);
}
}
0
如果格式總是相同的:
String value = "RoomA38";
String room = value.substring(0, 5);
Integer floor = Integer.valueOf(value.substring(5,6));
Integer roomNumber = Integer.valueOf(value.substring(6,7));
2
您可以通過不同的方式做到這一點,你只需要一些計算就沒有任何特定的API或者構建方法。下面是一個方法來做到這一點。
String str = "RoomA38";
int number = 0;
String[] strArr = str.split("\\d");
str = str.replace(strArr[0], "");
number = Integer.parseInt(str);
System.out.println("Numbers::: " + number);
str = strArr[0];
System.out.println("String is:::: " + str);
0
爲什麼不使用正則表達式?
@Test
public void splitString() {
final String src = "RoomA38";
final Pattern pattern = Pattern.compile("(\\D*)(\\d*)");
final Matcher matcher = pattern.matcher(src);
matcher.matches();
final String resultString = matcher.group(1);
final int resultInt = Integer.valueOf(matcher.group(2));
Assert.assertEquals("RoomA", resultString);
Assert.assertEquals(38, resultInt);
}
0
提取使用正則表達式和模式匹配在Java
String chars;
int result2,result3;
String str= "RoomA38";
String regex ="([a-zA-Z]+)([0-9]{1})([0-9]{1})";
Matcher matcher = Pattern.compile(regex).matcher(str);
while (matcher.find())
{
result = matcher.group(1);
result2 =Integer.parseInt(matcher.group(2));
result3 = Integer.parseInt(matcher.group(3));
System.out.println("chars="+result+" "+"number1="+result2+" "+"number2="+result3);
}
chars=RoomA number1=3 number2=8
相關問題
- 1. 從字符串中提取字符串
- 2. 從大字符串中提取int
- 3. 讀取字符串和INT
- 4. 從字符串中提取字符
- 5. 從字符串中提取字符
- 6. 提取字符串,字符串X和字符串之間ÿ
- 7. 從C++中的輸入字符串中分隔字符串和int字符串
- 8. 從字符串中提取
- 9. 從字符串中提取
- 10. 從'int'獲取int型字符串
- 11. 字符串處理,提取和從字符串
- 12. 從字符串中提取子串
- 13. 從字符串中提取子串
- 14. 提取字符串的字符串值
- 15. 從字符串中提取文本,連字符和數字
- 16. 從字符串中提取符號
- 17. 從Python中的字符串數組中提取子字符串
- 18. 如何從Python中的字符串中提取子字符串?
- 19. 如何從java中的字符串中提取子字符串
- 20. 從Objective-C中的字符串中提取字符串
- 21. 從Ruby中的一個長字符串中提取字符串
- 22. 如何從C++中的字符串中提取子字符串?
- 23. 如何在ColdFusion中從字符串中提取子字符串?
- 24. 如何從Perl中的字符串中提取子字符串?
- 25. 從Java中的字符串中提取子字符串
- 26. 從Bash中的字符串中提取字符串
- 27. 提取值從字符串
- 28. 僅提取從字符串
- 29. 提取從字符串
- 30. 提取從字符串
它總是會格式的所期望的結果:''? –
codaddict
yes.it將永遠如此 – Mazzy