Java 带分隔字符串、字符串数组和 ArrayList<String> 之间的转换

简介: Java 带分隔字符串、字符串数组和 ArrayList 之间的转换太阳火神的美丽人生 (http://blog.csdn.net/opengl_es)本文遵循“署名-非商业用途-保持一致”创作公用协议转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS、Android、Html5、Arduino、pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作。

Java 带分隔字符串、字符串数组和 ArrayList<String> 之间的转换

太阳火神的美丽人生 (http://blog.csdn.net/opengl_es)

本文遵循“署名-非商业用途-保持一致”创作公用协议

转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS、Android、Html5、Arduino、pcDuino否则,出自本博客的文章拒绝转载或再转载,谢谢合作。


一、先来认识一下标题说的这三件东西,也许描述的不清楚,但有了下面的例子,就不会有歧义了

1、带分隔字符串是这样的:

    String seperateStr = "111,222,333,444,555,666,777";
以逗号分隔;也可以以其它字符或字符串进行分隔,或者有多个分隔;


2、字符串数组:

    String[] seperates = {"111", "222", "333", "444", "555", "666", "777"};

也可以

    String seperates[] = {"111", "222", "333", "444", "555", "666", "777"};

或者

    int arraySize = 7;
    String[] seperates = new String[arraySize ];
    seperates[0] = "111";
    seperates[0] = "222";
    seperates[0] = "333";
    seperates[0] = "444";
    seperates[0] = "555";
    seperates[0] = "666";
    seperates[0] = "777";
再或者

    String[] seperates = new String[]{"111", "222", "333", "444", "555", "666", "777"};

3、ArrayList<String>

    List seperateList = new ArrayList<String>();

二、如何在三件东西间转换呢?

1、带分隔字符串 与 字符串数组间转换

a、遍历拼接,从字符串数组转换成带分隔的字符串;

b、查分隔个数初始化字符串数组,再逐一查分隔位置取子串赋值给字符串数组元素;


上面提到这两种方法,确实很够底层,不过确实浪费时间,为什么 Java 的内置方法中没有像 iOS 中的方便处理方法呢:

        NSString *seperateStr = @"111,222,333,444,555,666,777";
        NSArray *seperates = [seperateStr componentsSeparatedByString:@","];
        
        NSString *seperateBackStr = [seperates componentsJoinedByString:@","];

别着急,Java 没自带,不妨找外援。

Apache Commons Lang

这是 Apache 提供的通用工具库,关于字符串工具 StringUtils 的详细文档见此页

    String[] seperates = StringUtils.split(seperateStr, ",");
    String resultStr = StringUtils.join(seperates, ",");
这不就有了吗!唯一的遗憾,功能不内聚,需要引入三方工具库。

实际上,Java 的 String 类提供了 split 方法,可以进行分隔转成数组,但相比上面库的功能,那可是捉襟见肘了:


String 类提供的分隔方法:


StringUtils 提供的分隔方法:



这个工具库的功能远不止于此,下面摘要部分:

2、字符串数组与 ArrayList<String> 之间的转换

这要借助于  Collections 类的方法来完成转换了。


将字符串数组中的元素一次性添加到 ArrayList<String> 中:

    Collections.addAll(seperateList, seperates);

将 ArrayList<String> 转换成 数组:

    String[] seperateStr = (String[]) seperateList.toArray();

3、至于 ArrayList<String> 与字符串之间的转换,可能意义会有所不同了

如果是想按上面的分隔方式,那么有上面的链条,足以进行转换了,确实没有太便捷的方法;

再有,就是 toString() 方法会以字符串形式呈现该 ArrayList 对象,仅描述而已,你也可以派生子类,重载 toString 方法,按你自已的意图来组织,或加个参数,传入分隔符。




目录
相关文章
|
8天前
|
Java API 索引
Java基础—笔记—String篇
本文介绍了Java中的`String`类、包的管理和API文档的使用。包用于分类管理Java程序,同包下类无需导包,不同包需导入。使用API时,可按类名搜索、查看包、介绍、构造器和方法。方法命名能暗示其功能,注意参数和返回值。`String`创建有两种方式:双引号创建(常量池,共享)和构造器`new`(每次新建对象)。此外,列举了`String`的常用方法,如`length()`、`charAt()`、`equals()`、`substring()`等。
14 0
|
10天前
|
Java
Java 字符串分割split空字符串丢失解决方案
Java 字符串分割split空字符串丢失解决方案
|
24天前
|
Java
【Java】如果一个集合中类型是String如何使用拉姆达表达式 进行Bigdecimal类型计算?
【Java】如果一个集合中类型是String如何使用拉姆达表达式 进行Bigdecimal类型计算?
25 0
|
29天前
|
存储 缓存 测试技术
CMake String函数:如何巧妙地在cmake中操作字符串
CMake String函数:如何巧妙地在cmake中操作字符串
60 0
|
30天前
|
Java
Java String split()方法详细教程
Java String split()方法详细教程
20 0
存储 编译器 Linux
15 0
|
8天前
|
JavaScript
js 字符串String转对象Object
该代码示例展示了如何将一个以逗号分隔的字符串(`&#39;1.2,2,3,4,5&#39;`)转换为对象数组。通过使用`split(&#39;,&#39;)`分割字符串并`map(parseFloat)`处理每个元素,将字符串转换成浮点数数组,最终得到一个对象数组,其类型为`object`。
|
12天前
|
XML 编解码 数据格式
Python标准数据类型-String(字符串)
Python标准数据类型-String(字符串)
23 2
|
20天前
|
Java
java 8 数组转字符串并以逗号分隔
java 8 数组转字符串并以逗号分隔
11 0
|
27天前
|
SQL JavaScript
js开发:请解释什么是ES6的模板字符串(template string),并给出一个示例。
ES6的模板字符串以反引号包围,支持变量和表达式插入以及多行书写。例如,插入变量值`Hello, ${name}!`,计算表达式`${num1 + num2}`,以及创建多行字符串。模板字符串保留原始空格和缩进,简化了字符串拼接,提高了代码可读性。
18 6