Java 从字符串中提取字符串和int
我有一个字符串:Java 从字符串中提取字符串和int,java,string,Java,String,我有一个字符串:RoomA38。我想从中提取RoomA并放入一个String类型的对象,提取3和8并将它们放入两个不同的int类型。我想到了拆分方法,但我不知道在这种情况下如何使用它。我该怎么做呢?您可能想使用Scanner进行此操作:使用下面的行,您可以找出字符是否是数字。 字符.isDigit(“”) 您可以迭代字符串中的每个字符,并相应地提取有用的字符。您可以这样做吗 String myString = "RoomA38"; StringBuilder sb = new StringBui
RoomA38
。我想从中提取RoomA
并放入一个String类型的对象,提取3
和8
并将它们放入两个不同的int类型。我想到了拆分方法,但我不知道在这种情况下如何使用它。我该怎么做呢?您可能想使用Scanner进行此操作:使用下面的行,您可以找出字符是否是数字。
字符.isDigit(“”)
您可以迭代字符串中的每个
字符
,并相应地提取有用的字符。您可以这样做吗
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
}
String myString=“RoomA38”;
StringBuilder sb=新的StringBuilder();
列表编号=新的ArrayList();
对于(int i=0;i您可以从字符串中提取数字,然后编写自己的逻辑来分隔数字。
谢谢
Sunil如果格式始终相同:
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));
您可以通过各种方式来实现这一点,您只需要进行一些计算,因为没有任何特定的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);
为什么不使用正则表达式呢
@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);
}
在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
它的格式是否总是:
?是的,它总是这样
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