当前位置: 首页 > 知识库问答 >
问题:

向列表中添加元素,并用冒号“:”而不是逗号分隔每个元素

暴骏奇
2023-03-14
play_full_NAME=556677

pause_full_NAME=9922

stop_full_NAME=112233

我试图在一个用冒号“:”分隔的列表中添加所有三个元素

示例输出:

play_full_NAME=556677:pause_full_NAME=9922:stop_full_NAME=112233

我的尝试:

List<String> list = new ArrayList<String>();

list.join(":",abc)

共有1个答案

黄毅
2023-03-14

你真的很理解名单吗?

实际上,没有分隔符,每个项/值都存储为不同的“对象”。

因此,您有一些独立的值--在本例中是字符串,您可以在屏幕截图bellow上看到什么,或者如果您要执行system.out.println(someList);它将调用方法ToString()的重写,该方法是从Object类继承的,它是Java中所有类的根父类。

所以在list中的每个项之间添加一些拆分字符是完全没有意义的,它们已经拆分了,您可以通过get(int position)方法访问每个项。

所以如果你想“自己”打印每一项列表,可以这样做:

for (int i = 0; i < someList.size(); i++) {
    System.out.println(i + " = " + someList.get(i));    
}
/* output will be 
   1 = 1 item
   2 = 2 item
   3 = 3 item
   4 = 4 item
*/

如果您想实现打印“您的列表”的自定义方法,那么您可以扩展EG。ArrayList类和重写ToString方法,但更好和更简单的方法是在一些实用程序中准备一些方法,以获得带有list-eg上下文的格式化字符串输出。(注意,最后一个元素后面有)

public static String getFormatStringFromList(ArrayList<String> data) {
    StringBuilder sb = new StringBuilder();
    for (int i = 0; i < data.size(); i++) {
        sb.append(data.get(i) + ";");   
    }

    return sb.toString();
    //eg. 0 item;1 item;2 item;3 item;4 item;
}

为了避免最后一个分隔符,你可以做。简单检查

public static String getFormatStringFromListWitoutLastSeparator(List<String> someList) {
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < someList.size(); i++) {
            sb.append(someList.get(i));
            if(i < someList.size() -1) {
                 sb.append(";");
            }
        }

        return sb.toString();
        //0 item;1 item;2 item;3 item;4 item
        /*
           someList[0] = 0 item
           someList[1] = ;
           someList[2] = 1 item
           someList[3] = ;
           {etc..}
        */
    }

从列表中获取字符串的最佳方法将像@krisnik建议的那样:

String joinedString=String.join(“:”,list);

 类似资料:
  • 我有以下三个要素: 请帮助用一个更好的方法来处理这件事。

  • 问题内容: 不幸的是,我有一个字段列,其中包含诸如 4 12,3 8,5,6,7 我将编写一个SELECT语句,其结果将是: 4 12 8 由于MySQL不提供“拆分”功能,我如何在实践中做到这一点? 问题答案: 使用MySQL的功能: 但是,将列表保留在以定界符分隔的字符串中通常是对像MySQL这样的关系数据库管理系统的低效使用:通常最好通过将这样的列表保留在成对的单独表中来规范化数据结构。

  • 在我的应用程序中,我希望使用此库来显示项。 服务器中的ArrayList:

  • 在我的应用程序中,我希望使用此库来显示项。 服务器中的ArrayList: 我为显示项编写了以下代码:

  • 问题内容: 我正在编写一段代码,该代码应该输出用逗号分隔的项目列表。该列表是通过for循环生成的。我用 问题是我不知道如何摆脱列表中最后一个条目添加的最后一个逗号。它输出以下内容: 如何删除结尾的’,’? 问题答案: 传递给 您几乎可以使用print语句。 不需要循环,print具有以及参数。 一点解释 所述内置需要作为要打印参数中的任何数量的项目。将打印所有非关键字参数,并用分隔。的默认值为单个

  • 问题内容: 由于IE7和IE8不支持对伪元素(例如或)使用双冒号表示法,并且由于现代浏览器支持向后兼容的单冒号(例如),我应该仅使用单冒号表示法以及何时使用IE8的市场份额下降到可以忽略的水平,然后回去查找/替换我的代码库?还是我都应该同时包括: 如果我关心IE8用户(可怜的朋友),单独使用double似乎很愚蠢。 问题答案: 请勿 同时 使用逗号和逗号。兼容CSS 2.1(不支持CSS3)的用户