如何在字符串中获取单词

时间:2011-03-30 03:38:20

标签: c# java c++ c visual-studio

我正在使用xml,但现在不重要,问题是下一个 它会给我一些回报

<xml>blalbalblal asfjñs
fasdf
iduser=dmengelblack; name=angel; lastname=uc;
blablal
iduser=cccarlos; name=carlos; lastname=uc;

我怎么得到(dmengelblack,天使,uc,carlos,uc)

我想保存每一行...

记住它在字符串中的内容我如何得到“dmengelblack”,“angel”,“uc”保存它,变量中的每个人,并将所有这些保存在变量中......例如

string id="dmengelblack";
string name="angel";
string lastname="uc";

all="dmengelblack angel uc"

我需要保存另一行,并且它可以拥有所有行

我知道什么?

  • 我之前知道的比用户名是“id =”
  • 我知道名字之前是“name =”
  • 我知道在lastname之前它是“lastname =”
  • 我知道每个人都以“;”结束。

3 个答案:

答案 0 :(得分:1)

java中的简单方法是将文件作为流读取,遍历并获取

之间的子串

iduser = and;

name = and;

lastname = and;

编辑:使用此代码,您将获得所需的所有文件列表

输出:

[iduser=dmengelblack, iduser=cccarlos]
[name=angel, name=carlos]
[lastname=uc, lastname=uc]

所以现在你通过这些列表进行交互,将每个条目拆分为=,你将在拆分的第二个索引上得到你想要的值。

代码:

String str = "<xml>blalbalblal asfjñs" + "fasdf" 
                    +   "iduser=dmengelblack; name=angel; lastname=uc;"
                    +   "blablal"
                    +   "iduser=cccarlos; name=carlos; lastname=uc;";
        List<String> iduser = new ArrayList<String>();
        List<String> name = new ArrayList<String>();
        List<String> lastname = new ArrayList<String>();
        int i = 1;
        while(str.indexOf("iduser=", i) > 0) {
            i=str.indexOf("iduser=",i);
            iduser.add(str.substring(i, str.indexOf(";", i)));
            name.add(str.substring(str.indexOf("name=", i), str.indexOf(";", str.indexOf("name=", i))));
            lastname.add(str.substring(str.indexOf("lastname=", i), str.indexOf(";", str.indexOf("lastname=", i))));
            i=str.indexOf("lastname=",i);
        }
        System.out.println(iduser);
        System.out.println(name);
        System.out.println(lastname);

希望这会有所帮助。

答案 1 :(得分:0)

我会使用RegEx将键值的模式提取到hast表(字典)中,然后使用知道键映射将其分配给您拥有的变量(使用switch语句或其他东西进行迭代)

答案 2 :(得分:0)

在c#(和其他语言,但它们将有不同的语法)中,您可以将字符串拆分为字符串数组,如下所示:

string myString = "item1;item2;item3";
string[] separateStrings = myString.Split(';');

这将为您提供一个字符串数组:

string[0] = "item1";    
string[1] = "item2";    
string[2] = "item3";

我还建议你清理标签,只标记你真正关心的内容。