如何从字符串中提取未知名称

时间:2014-01-16 20:12:47

标签: java string extract

我正在尝试创建一个Minecraft服务器控制面板,我想获得所有在线玩家的列表,每个用户名都在其自己的String中。获取用户的方式是键入/ list并返回一个字符串。返回的字符串如下所示:

[HH:MM:SS] INFO:username1,username2,username3和username4

那么,我如何将每个用户名提取到自己的字符串中呢?我用Google搜索过,看起来像是类似的问题,我找不到有用的答案。我想到了string.replaceAll();但我似乎无法让它工作。

有什么建议吗?

3 个答案:

答案 0 :(得分:1)

尝试使用

String.split(", ");

这会将字符串拆分为数组。

以下是> tutorial

String usernames = ...; // fill with data

String[] data = usernames.split(", ");

除此之外,您必须从名字中删除日期和时间。

答案 1 :(得分:1)

之前的答案还有一些技术细节:

String[] usernames = String.split(",");

要提取第一个用户名,您必须执行以下操作:

String username1 = usernames[0].split("INFO:")[1]; // not sure if you need ":" or "\:", so check it out...

这是因为usernames[0] == "[HH:MM:SS] INFO: username1",你想把它分成在“INFO:”之前出现的子字符串和在它之后出现的子字符串。

要提取剩余的用户名,只需从索引1迭代usernames数组。

例如:

for (int i=1; i<usernames.length; i++)
    System.out.println(usernames[i]);

注意:您可能希望使用strip()去除前导和/或尾随空格。

答案 2 :(得分:0)

添加卢西恩所说的话:

String [] data = s.split(", ");
data[0]=data[0].replaceAll("[HH:MM:SS] INFO: ", "");

应该用任何内容替换该字符串的不需要的开头(“”);