java - 如何在java中按字符串的数据类型拆分字符串?
问题描述
在我的 Spigot 插件中,玩家输入一个命令,例如/logging chat clear 1d
. 1d
需要为日期解析的参数编号 2(第 3 个参数) (例如 1d = 1 天,15m = 15 分钟)。我已经弄清楚了解析部分,但是当我尝试解析多个数字(1 对 11)时,我的解析不起作用,因为我根据字符进行拆分,而不是根据它是整数还是字符串。然后我String[] part = arg3.split("");
将第一个字符作为数字,将第二个字符作为字符串。
我怎么能做到这一点,但拆分以便我可以有多个数字?(正则表达式?)
解决方案
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);
推荐阅读
- python - 例外为 e。e 在调试器中不可见
- csh - 为什么当我尝试调用 csh 时有一个未定义的变量
- node.js - Node.js 数据库与 MongoDB 的连接?
- bash - 如何在从 $x 行号开始的文件中查找下一个字符串的出现。
- matlab - MATLAB 2018b - Datafeed Toolbox:从 Bloomberg 检索特定时间范围的刻度数据
- git - Git子模块无法添加子文件夹
- angular - Angular 6 - 一个指令中的多个功能。函数 onResize() onInit()
- typescript - Make TypeScript see global types bundled by dependency
- c++ - 如何在 c++11 中使用 lock_guard 实现 scoped_lock 功能
- linux - 每天压缩日志