2015-05-27 72 views
-2

我有一个字符串变量,定义如下:从字符串得到整数和字符串,java

String str= "245 Hello world";

有没有办法将此字符串拆分为整数a=245和字符串b="Hello world"

未定义数字和文本之间的现有空格。确定的是我总是有一个整数,然后是文本。

+0

肯定。使用正则表达式。 – Marged

+2

“未定义”是什么意思?它可以是“123Hello”吗? – folkol

+0

你是对的。白色空间必须是一个或多个。我将编辑该问题。 – mark4rd

回答

6

如何:

Scanner sc = new Scanner("245 Hello world"); 
int i = sc.nextInt(); 
String s = sc.nextLine().trim(); 
0

您可以使用拆分():

Integer a = Integer.parseInt(str.split(" ", 2)[0]); 
    String b = str.split(" ", 2)[1].trim(); 
-1

你可以做Str.substring(0,3),以获得数量和str.substring(4, str.length() - 3)获取其余并修剪它。 其他解决方案使用str.split(“”)将字符串分成三部分,第一部分是您连接以获取消息的其余部分的编号。

1

使用正则表达式的数字分开:

String str= "245 Hello world"; 
Pattern pat = Pattern.compile("/(\d+)/g"); 
Matcher mat = pat.matcher(str); 
String num; 
if(mat.find()){ 
    num = mat.group(1); 
} 
str.replace(num, ""); 

而且parseInt函数得到一个整数:

int x = Integer.parseint(num);