簡體   English   中英

在ArrayList中合並兩個字符串

[英]Combine two strings in an ArrayList

我想知道是否有可能組合我設置的兩個字符串-

我要做的是,當播放器鍵入命令“ / rules add Rule Goes Here”時,它將文本“ Rule Goes Here”作為列表添加到配置文件中,配置文件如下所示:

規則:

  • 規則1

  • 規則二

我嘗試用於命令的代碼如下:

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

“插件”是插件的主要類,因此所有內容都可以使用。 多數民眾贊成在生成配置。

我試圖使用在bukkit論壇上找到的這段代碼plugin.getConfig().getList("rules").add(args); 但是運氣不好,因為我得到了錯誤提示:

List<capture#4-of ?>類型中的方法add(capture#4-of ?)不適用於參數( String[]

現在可能要問一個愚蠢的問題,最有可能的是,但是我當然還是個初學者。 如果可以的話,請協助我,非常感謝您。 謝謝!

您需要List<?>具有實際類型,而不能對具有通配符類型的對象進行突變。

也許這就是您想要的:

c.list1.addAll(Arrays.asList(args));

但是,您需要更精確地描述要對哪些列表執行的操作。

這實際上是一個有趣的任務,盡管作為Java的啟動者您應該做的事情不算什么(編寫沒有至少Java基礎知識的minecraft插件將不起作用)

至於您的問題,下面將提供解決方法,因為我沒有可以測試它的Minecraft服務器,可能會出現錯誤。

使用用戶在聊天中編寫的規則來獲取ArrayList<String>很簡單:

ArrayList<String> a = new ArrayList<>();
    for(String s : args){
        a.add(s);
    }

現在,要將這些規則添加到您的配置中,bukkit確實提供了一個設置值的函數,即set(String, Object) 文檔可以在這里找到。

因此,您可以執行以下操作:

plugin.getConfig().set("Rules", a);

如果結果是您想要的偉大,如果不是,請精確說明該功能的問題。

還請記住,如果沒有其他插件,或者您的插件使用"Rules"作為訪問它們的鑰匙,那么添加這些規則不會有多大作用(據我所知)。

編輯:

上面的方法是可行的,但以下方法也可以工作:

if(plugin.getConfig().getList("rules")){
   plugin.getConfig().getList("rules").add(Arrays.asList(args));
 }

不要忘記這種方式可以重復! List和(據我所知)所有實現都不會檢查重復項!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM