从长字符串中提取数据并将其存储到java中的单独变量中

时间:2013-07-13 17:04:43

标签: java

我的字符串采用以下格式: (注意所有元素都由空格分隔)

data = "row_id email year month day path"

所以字符串应如下所示:

data ="3 email@goofy.com 2013 July 13 c:\hold_files\lisa.jpg"

我需要在以下变量中获取该字符串中的每个元素:

String sRow_id, sEmail, sYear sDay sPath;

有没有人对如何做到这一点有任何想法?

3 个答案:

答案 0 :(得分:5)

您可以使用String类的split()方法拆分字符串,这会为您提供String数组。

这样的事情:

String[] splitArray = data.split("\\s+"); // for more than one spaces
String[] splitArray = data.split("\\s"); // exactly one space

我需要变量中的这些元素,而不是数组。

您可以使用简单数组索引将每个数组元素分配给您的一个变量。

答案 1 :(得分:1)

使用.split()将字符串拆分为空格分隔符

像这样:

data ="3 email@goofy.com 2013 July 13 c:\\hold_files\\lisa.jpg";

String[] split = data.split("\\s");
String sRow_id = split[0];
String sEmail = split[1];
String sYear = split[2];
String sDay = split[3];
String sPath = split[4];

Log.i(TAG, sRow_id + " " + sEmail + " " + sYear + " " + sDay + " " + sPath);

答案 2 :(得分:1)

使用Scanner

String data ="3 email@goofy.com 2013 July 13 c:\hold_files\lisa.jpg";
Scanner scannerInstance = new Scanner(data);
sRowID = scannerInstance.next(); 
sEmail = scannerInstance.next();
sYear = scannerInstance.next();
sDay = scannerInstance.next();
sPath = scannerInstance.next();

使用split是另一种方法,StringTokenizer也是如此。