为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

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

3 回答

?
尚方宝剑之说

TA贡献1788条经验 获得超4个赞

private void myMethod() {

    String integers = "";

    String characters = "";

    String splitArgument = ""; //this is the 1d or 11d part

    for(int x = 0; x < splitArgument.length(); x++) {

        Char currentChar = splitArgument.charAt(x);

        if(Character.isDigit(currentChar)) {

            integers += currentChar;

        }else {

            characters += currentChar;

        }

    }

}

其中 myMethod 仅表示您正在分析输入的代码区域。您可以创建一个方法(如 isInteger()),从您正在检查的字符串中获取字符并确定它们是否为整数/字符串并重新连接字符串为他们。对于整数部分,您可以执行以下操作:


int myInteger = Integer.parseInt(integers);


查看完整回答
反对 回复 2023-05-17
?
慕无忌1623718

TA贡献1744条经验 获得超4个赞

使用正则表达式。


import java.util.regex.*;

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);

}


查看完整回答
反对 回复 2023-05-17
?
梵蒂冈之花

TA贡献1900条经验 获得超5个赞

您可以简单地执行此操作,条件date是参数character在String.


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}。


此方法只是使用substring基于的长度String并将数字与最终字符分开。


查看完整回答
反对 回复 2023-05-17
  • 3 回答
  • 0 关注
  • 154 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信