Java 在ArrayList中组合两个字符串
我想知道是否有可能合并我设置的两个字符串- 我试图做的是当玩家键入命令“/rules add Rule go Here”时 它会将文本“Rule Goes Here”作为列表添加到配置文件中,配置文件如下所示: 规则:Java 在ArrayList中组合两个字符串,java,Java,我想知道是否有可能合并我设置的两个字符串- 我试图做的是当玩家键入命令“/rules add Rule go Here”时 它会将文本“Rule Goes Here”作为列表添加到配置文件中,配置文件如下所示: 规则: 规则1 规则2 我尝试用于命令的代码如下所述: if (args[0].equalsIgnoreCase("add")) { ArrayList<String[]> list1 = new ArrayList<String[]&
- 规则1
- 规则2
if (args[0].equalsIgnoreCase("add"))
{
ArrayList<String[]> list1 = new ArrayList<String[]>();
List<String[]> c = plugin.getConfig().getList("rules");
c.list1.addAll(Arrays.asList(args));
return true;
}
if(args[0].equalsIgnoreCase(“add”))
{
ArrayList list1=新的ArrayList();
List c=plugin.getConfig().getList(“规则”);
c、 list1.addAll(Arrays.asList(args));
返回true;
}
“plugin”是插件的主要类,所以所有的东西都会被激发起来使用。这就是生成配置的地方
我试图使用我在bukkit论坛上找到的代码-
plugin.getConfig().getList(“规则”).add(args)代码>
但是运气不好,因为我得到了错误声明:
类型列表中的方法add(capture#4-of?
不适用于参数(String[]
)
现在问这个问题可能很愚蠢,最有可能的是,但我当然还是个初学者。
如果你能在这方面帮助我,我将非常感激。
谢谢大家! 您需要该列表
才能具有实际类型,您不能对具有通配符类型的对象进行变异。也许这就是您要寻找的:
c.list1.addAll(Arrays.asList(args));
但是你需要更准确地描述你想用哪些列表做什么。这实际上是一项有趣的任务,尽管这不是你作为java初学者应该做的事情(编写minecraft插件时至少没有java的基础知识是行不通的)
至于你的问题,下面将是一个方法来做到这一点,可能会有错误,因为我没有一个minecraft服务器,我可以测试它
使用用户在chat中编写的规则获取ArrayList
,非常简单:
ArrayList<String> a = new ArrayList<>();
for(String s : args){
a.add(s);
}
如果结果是你想要的伟大,如果不是,请准确说明该功能的错误
还要记住,如果没有其他插件或您的插件使用“rules”
作为访问这些规则的密钥(至少据我所知),那么添加这些规则不会有多大作用
编辑:
上述方法是可能的,但以下方法也可能有效:
if(plugin.getConfig().getList("rules")){
plugin.getConfig().getList("rules").add(Arrays.asList(args));
}
不要忘记,这种方式可以有重复!列表和(据我所知)所有它的实现都不会检查重复条目 什么是插件
?你能澄清一下“玩家为规则输入了什么”@cricket_007在我看来像是Minecraft Bukkit插件的插件对象。你添加的代码没有多大意义。您已将c
声明为列表
,但下一行是c.list1.add
。你想在这里做什么?啊,一个新的没有经验的Bukkit程序员的味道-D这篇文章很难理解,代码也帮不了什么忙。不仅如此,OP似乎认为list1
在某种程度上是c
的一员。不幸的是,这并不能解决问题,我编辑了这篇文章来解释我要做的事情。
if(plugin.getConfig().getList("rules")){
plugin.getConfig().getList("rules").add(Arrays.asList(args));
}