如何在 java 中按数据类型拆分字符串?

在我的 Spigot 插件中,玩家输入一个命令,例如/logging chat clear 1d. 参数编号 2(第 3 个参数)需要1d针对日期进行解析(例如 1d = 1 天,15m = 15 分钟)。我已经弄清楚了解析部分,但是当我尝试解析多个数字(1 对 11)时,我的解析不起作用,因为我根据字符进行拆分,而不是根据它是整数还是字符串。然后我String[] part = arg3.split("");将第一个字符作为数字,将第二个字符作为字符串。 我该怎么做,但拆分以便我可以有多个号码?(正则表达式?)



慕哥9229398
浏览 155回答 3
3回答

尚方宝剑之说

private void myMethod() {&nbsp; &nbsp; String integers = "";&nbsp; &nbsp; String characters = "";&nbsp; &nbsp; String splitArgument = ""; //this is the 1d or 11d part&nbsp; &nbsp; for(int x = 0; x < splitArgument.length(); x++) {&nbsp; &nbsp; &nbsp; &nbsp; Char currentChar = splitArgument.charAt(x);&nbsp; &nbsp; &nbsp; &nbsp; if(Character.isDigit(currentChar)) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; integers += currentChar;&nbsp; &nbsp; &nbsp; &nbsp; }else {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; characters += currentChar;&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; }}其中 myMethod 仅表示您正在分析输入的代码区域。您可以创建一个方法(如 isInteger()),从您正在检查的字符串中获取字符并确定它们是否为整数/字符串并重新连接字符串为他们。对于整数部分,您可以执行以下操作:int myInteger = Integer.parseInt(integers);

慕无忌1623718

使用正则表达式。import java.util.regex.*;Pattern pattern = Pattern.compile("(\\d+)([a-zA-Z]+)");Matcher matcher = pattern.matcher(text);if(matcher.find()){&nbsp; &nbsp; String number = matcher.group(1);&nbsp; &nbsp; String letters = matcher.group(2);}

梵蒂冈之花

您可以简单地执行此操作,条件date是参数character在String.public static String[] splitDate(String date){&nbsp; &nbsp; int length = date.length();&nbsp; &nbsp; String[] results = {date.substring(0, length - 1), date.substring(length - 1)};&nbsp; &nbsp; return results;}的输入110w将返回一个数组{110, w}。此方法只是使用substring基于的长度String并将数字与最终字符分开。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java