如何用它分割字符串';java中的数据类型是什么?
在我的Spigot插件中,玩家输入一个命令,如如何用它分割字符串';java中的数据类型是什么?,java,split,Java,Split,在我的Spigot插件中,玩家输入一个命令,如/logging chat clear 1d。参数编号2(第3个参数)为1d,需要分析日期(例如1d=1天,15m=15分钟)。我已经找到了解析部分,但是当我尝试解析多个数字(1对11)时,我的解析不起作用,因为我是基于字符进行拆分的,而不是基于它是整数还是字符串。我做String[]part=arg3.split(“”)然后将第一个字符作为数字,第二个字符作为字符串。 我如何才能做到这一点,但要进行拆分才能拥有多个数字?(正则表达式?使用正则表达式
/logging chat clear 1d
。参数编号2(第3个参数)为1d
,需要分析日期(例如1d=1天,15m=15分钟)。我已经找到了解析部分,但是当我尝试解析多个数字(1对11)时,我的解析不起作用,因为我是基于字符进行拆分的,而不是基于它是整数还是字符串。我做String[]part=arg3.split(“”)
然后将第一个字符作为数字,第二个字符作为字符串。
我如何才能做到这一点,但要进行拆分才能拥有多个数字?(正则表达式?使用正则表达式
Pattern pattern = Pattern.compile("(\\d+)([a-zA-Z]+)");
Matcher matcher = pattern.matcher(text);
if(matcher.find()){
String number = matcher.group(1);
String letters = matcher.group(2);
}
如果
日期
参数始终是字符串
末尾的单个字符
,则可以简单地执行此操作
public static String[] splitDate(String date)
{
int length = date.length();
String[] results = {date.substring(0, length - 1), date.substring(length - 1)};
return results;
}
输入110w
将返回{110,w}
数组
这种方法只是根据
字符串的长度使用子字符串
,并将数字从最后一个字符中分离出来。为什么不干脆将其设置为1_d
或15_m
,让生活更轻松呢?(在分隔符上拆分)因为这是一个广泛的项目,我需要分析所有可能的日期,所以我按编号进行分析。例如20w
为20周,210w
为210周。我不能只解析某些步骤。我的意思是用分隔符
进行输入,然后使用.split(“'''
)。您可以将其视为20_w
,并且在拆分后数组将包含{20,w}
。这是一个好主意,但我不希望有一个特定的分隔符,而是将参数保持在尽可能小的大小。第二个参数始终是1个字母还是可以更大?(使用try
和catch
和异常控制程序流的w
或d
)是一种不好的方法。使用Character.isDigit()
将是确定字符是否为数字的更好方法。很好!我从来不知道这种方法的存在。已更新。您使用的第一个方法也有效,但我必须对其进行一些调整。我尝试过此方法,但它给了我,原因是:java.lang.IllegalStateException:找不到匹配项
是的,对不起,我忘了调用matcher.find()
。我编辑了它。
Pattern pattern = Pattern.compile("(\\d+)([a-zA-Z]+)");
Matcher matcher = pattern.matcher(text);
if(matcher.find()){
String number = matcher.group(1);
String letters = matcher.group(2);
}
public static String[] splitDate(String date)
{
int length = date.length();
String[] results = {date.substring(0, length - 1), date.substring(length - 1)};
return results;
}