在Java中将字符串转换为数组?

时间:2010-12-21 12:10:24

标签: java

我有一个字符串,其值如下(格式相同):

name:xxx
occupation:yyy
phone:zzz

我想将其转换为数组并使用索引获取占用值。

有什么建议吗?

7 个答案:

答案 0 :(得分:3)

基本上你会使用Java的split()函数:

String str = "Name:Glenn Occupation:Code_Monkey";

String[] temp = str.split(" ");
String[] name = temp[0].split(":");
String[] occupation = temp[1].split(":");

结果值为:

name[0] - Name
name[1] - Glenn

occupation[0] - Occupation
occupation[1] - Code_Monkey

答案 1 :(得分:1)

了解Split functnio。您可以按“”分隔文本,然后按“:”

分割

答案 2 :(得分:0)

我建议使用String的split function

答案 3 :(得分:0)

听起来你想要转换为属性Map而不是数组。

e.g。

String text = "name:xxx occupation:yyy phone:zzz";
Map<String, String> properties = new LinkedHashMap<String, String>();
for(String keyValue: text.trim().split(" +")) {
   String[] parts = keyValue.split(":", 2);
   properties.put(parts[0], parts[1]);
}
String name = properties.get("name"); // equals xxx

此方法允许您的值以任何顺序排列。如果缺少某个键,则get()将返回null。

答案 4 :(得分:0)

如果您只对职业价值感兴趣,可以这样做:

String s = "name:xxx occupation:yyy phone:zzz";
Pattern pattern = Pattern.compile(".*occupation:(\\S+).*");
Matcher matcher = pattern.matcher(s);
if (matcher.matches()){
    String occupation = matcher.group(1);
}

答案 5 :(得分:0)

str = "name:xxx occupation:yyy phone:zzz
    name:xx1 occupation:yy3 phone:zz3
    name:xx2 occupation:yy1 phone:zz2"

name[0] = str.subtsring(str.indexAt("name:")+"name:".length,str.length-str.indexAt("occupation:"))
occupation[0] = str.subtsring(str.indexAt("occupation:"),str.length-str.indexAt("phone:"))
phone[0] = str.subtsring(str.indexAt("phone:"),str.length-str.indexAt("occupation:"))

答案 6 :(得分:0)

我得到了解决方案:

String[] temp= objValue.split("\n");
String[] temp1 = temp[1].split(":");
String Value = temp1[1].toString();
System.out.println(value);