我正在尝试创建一个Minecraft服务器控制面板,我想获得所有在线玩家的列表,每个用户名都在其自己的String中。获取用户的方式是键入/ list并返回一个字符串。返回的字符串如下所示:
[HH:MM:SS] INFO:username1,username2,username3和username4
那么,我如何将每个用户名提取到自己的字符串中呢?我用Google搜索过,看起来像是类似的问题,我找不到有用的答案。我想到了string.replaceAll();但我似乎无法让它工作。
有什么建议吗?
答案 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: ", "");
应该用任何内容替换该字符串的不需要的开头(“”);