Java 如何从字符串中提取未知名称
我正在尝试制作一个Minecraft服务器控制面板,我想得到所有在线玩家的列表,每个用户名都有自己的字符串。获取用户的方式是键入/list,它返回一个字符串。返回的字符串如下所示: [HH:MM:SS]信息:username1、username2、username3和username4 那么,如何将每个用户名提取到它自己的字符串中呢?我已经在谷歌上搜索了这个问题,看起来像是类似的问题,但我找不到有用的答案。我想到了string.replaceAll();但我似乎无法让它发挥作用 有什么建议吗?尝试使用Java 如何从字符串中提取未知名称,java,string,extract,Java,String,Extract,我正在尝试制作一个Minecraft服务器控制面板,我想得到所有在线玩家的列表,每个用户名都有自己的字符串。获取用户的方式是键入/list,它返回一个字符串。返回的字符串如下所示: [HH:MM:SS]信息:username1、username2、username3和username4 那么,如何将每个用户名提取到它自己的字符串中呢?我已经在谷歌上搜索了这个问题,看起来像是类似的问题,但我找不到有用的答案。我想到了string.replaceAll();但我似乎无法让它发挥作用 有什么建议吗?尝
String.split(“,”)代码>
这将把字符串拆分为一个数组
以下是如何>
String[]data=usernames.split(“,”)代码>
在此之后,您必须从名字中删除日期和时间。上一个答案以及一些技术细节:
String[] usernames = String.split(",");
要提取第一个用户名,您必须执行如下操作:
String username1 = usernames[0].split("INFO:")[1]; // not sure if you need ":" or "\:", so check it out...
这是因为用户名[0]=“[HH:MM:SS]INFO:username1”
,您希望将其拆分为显示在“INFO:”之前的子字符串和显示在“INFO:”之后的子字符串
为了提取剩余的用户名,只需迭代索引1中的用户名
数组。
例如:
for (int i=1; i<usernames.length; i++)
System.out.println(usernames[i]);
for(inti=1;i补充了卢西恩的话:
String [] data = s.split(", ");
data[0]=data[0].replaceAll("[HH:MM:SS] INFO: ", "");
应该用nothing(“”)替换该字符串不需要的开头;是的,但是,我该如何在这个问题中实现它呢?例如,让我们假设我的问题中的字符串是s
。我将使用s.split(“”),”;要获得用户名列表,它们将从s[2]开始好的,很酷。我放学回家后会试试这个,如果它有效的话,你会得到+1并回答:)拆分上的[1]
是为了什么?除了[HH:MM:SS]
实际上不是,这是一个实际时间。。。那还能用吗?哦,那么你需要data[0]=data[0].replaceAll(\[([0-9]){2}\:([0-9]){2}\:([0-9]){2}\]INFO\:“,”代码>试试看。
String [] data = s.split(", ");
data[0]=data[0].replaceAll("[HH:MM:SS] INFO: ", "");