今天review代码,看见某些大爷在将泛型为String类型的集合或String类型的数组转化为逗号间隔字符串形式时仍然仅仅顾结果不注重过程,“大爷”咱能负点责任吗?

将泛型为String类型的集合转化为逗号间隔字符串形式:

測试类:

package com.ghj.packageofclient;

import java.util.ArrayList;
import java.util.List; import com.ghj.packageoftool.StringUtils; public class Test { public static void main(String[] args) {
List<String> stringList = new ArrayList<String>();
stringList.add("fd422114-0f9f-4f04-bc79-09698121f999");
stringList.add("5de14c97-348c-46b6-8519-f246b5f53d3a");
stringList.add("b2056a9e-8fba-4119-ab5a-79d3ec0100e0");
stringList.add("20254564-796e-43d5-bcd2-9fe157f2b18c");
stringList.add("sa31b130-9064-42d9-be2c-321773b2b2b5");
System.out.println(StringUtils.stringListToString(stringList));
}
}

第一种方式:

package com.ghj.packageoftool;

import java.util.List;

public class StringUtils {

	/**
* 将泛型为String类型的集合转化为逗号间隔字符串形式
*
* @author 高焕杰
*/
public static String stringListToString(List<String> stringList){
if (stringList == null || stringList.size() <= 0) {
return null;
}
String result = "";
for (String string:stringList) {
result += string + ",";
}
return result.substring(0, result.lastIndexOf(","));
}
}

总结:这样的方法一看就是脑残的人写出来的——大哥,String、StringBuffer和StringBuilder之间的差别你忘了吗?
        另外一种方式:

package com.ghj.packageoftool;

import java.util.List;

public class StringUtils {

	/**
* 将泛型为String类型的集合转化为逗号间隔字符串形式
*
* @author 高焕杰
*/
public static String stringListToString(List<String> stringList){
if (stringList == null || stringList.size() <= 0) {
return null;
}
StringBuffer stringBuffer = new StringBuffer();
for (String string:stringList) {
stringBuffer.append(string + ",");
}
return stringBuffer.toString().substring(0, stringBuffer.toString().lastIndexOf(","));
}
}

总结:这样的方法是大家经常使用的,但是这是最简单的方法吗——看第三种方式
        第三种方式:

package com.ghj.packageoftool;

import java.util.List;

public class StringUtils {

	/**
* 将泛型为String类型的集合转化为逗号间隔字符串形式
*
* @author 高焕杰
*/
public static String stringListToString(List<String> stringList){
if (stringList == null || stringList.size() <= 0) {
return null;
}
return stringList.toString().replaceAll("^\\[| |\\]$", "");
}
}

总结:哥啊,这才是最简单的方式啊!


        将String类型的数组转化为逗号间隔字符串形式:

測试类:

package com.ghj.packageofclient;

import com.ghj.packageoftool.StringUtils;

public class Test {

	public static void main(String[] args) {
String [] stringArray = new String[]{"fd422114-0f9f-4f04-bc79-09698121f999","5de14c97-348c-46b6-8519-f246b5f53d3a","b2056a9e-8fba-4119-ab5a-79d3ec0100e0","20254564-796e-43d5-bcd2-9fe157f2b18c","sa31b130-9064-42d9-be2c-321773b2b2b5"};
System.out.println(StringUtils.stringArrayToString(stringArray));
}
}

上面给出了将泛型为String类型的集合转化为逗号间隔字符串形式的最简单方法。所以这里就直接给出了将String类型的数组转化为逗号间隔字符串形式的最简单方法:

package com.ghj.packageoftool;

import java.util.Arrays;

public class StringUtils {

	/**
* 将String类型的数组转化为逗号间隔字符串形式
*
* @author 高焕杰
*/
public static String stringArrayToString(String [] stringArray){
if (stringArray == null || stringArray.length <= 0) {
return null;
}
return Arrays.toString(stringArray).replaceAll("^\\[| |\\]$", "");
}
}

再谈怎样以最简单的方法将泛型为String类型的集合或String类型的数组转化为逗号间隔字符串形式的更多相关文章

  1. 再谈:jquery编写插件的方法

    版权声明:作者原创,转载请注明出处! 编写插件的两种方式: 1.类级别开发插件(1%) 2.对象级别开发(99%) 类级别的静态开发就是给jquery添加静态方法,三种方式 1.添加新的全局函数 2. ...

  2. 【转】 Pro Android学习笔记(四三):Fragment(8):再谈Transaction和管理器

    目录(?)[-] Transaction的一些操作 再谈FragmentManager 调用其他fragment的方法 唤起activity 唤起fragment和相互通信 一些其它 Transact ...

  3. 再谈Jquery Ajax方法传递到action 【转载】

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://cnn237111.blog.51cto.com/2359144/984466 之 ...

  4. 再谈Jquery Ajax方法传递到action

     原始出处 :http://cnn237111.blog.51cto.com/2359144/984466  本人只是转载 原文如下: 假设 controller中的方法是如下: public Act ...

  5. 再谈Jquery Ajax方法传递到action(转)

    之前写过一篇文章Jquery Ajax方法传值到action,本文是对该文的补充. 假设 controller中的方法是如下: public ActionResult ReadPerson(Perso ...

  6. Java再谈方法

    1.3再谈方法 1.3.1 什么是方法(函数) ①方法是类或对象行为特征的抽象,也称为函数. ②Java里的方法不能独立存在,所有的方法必须定义在类里. 修饰符 返回值类型 方法名(参数类型 形参1, ...

  7. 再谈扩展方法,从string.IsNullOrEmpty()说起

    string.IsNullOrEmpty()这个方法算得上是.net中使用频率最高的方法之一.此方法是string的一个静态方法,类似的静态方法在string这个类中还有很多.那么这样的方法作为静态方 ...

  8. Unity教程之再谈Unity中的优化技术

    这是从 Unity教程之再谈Unity中的优化技术 这篇文章里提取出来的一部分,这篇文章让我学到了挺多可能我应该知道却还没知道的知识,写的挺好的 优化几何体   这一步主要是为了针对性能瓶颈中的”顶点 ...

  9. 浅谈HTTP中Get与Post的区别/HTTP协议与HTML表单(再谈GET与POST的区别)

    HTTP协议与HTML表单(再谈GET与POST的区别) GET方式在request-line中传送数据:POST方式在request-line及request-body中均可以传送数据. http: ...

随机推荐

  1. 8.ES6测试

    转自:http://www.ruanyifeng.com/blog/2015/12/a-mocha-tutorial-of-examples.html 如果测试脚本是用ES6写的,那么运行测试之前,需 ...

  2. leetcode 生成杨辉三角形, 118 119 Pascal's Triangle 1,2

    Given numRows, generate the first numRows of Pascal's triangle. For example, given numRows = 5, Retu ...

  3. spring的quartz定时任务

    一.版本: 1.spring:4.1.7:    2.quartz:2.2.1: 二.基于ssm项目: 1.引入jar包:quartz-2.2.1.jar:spring所需包. 2.说明:quartz ...

  4. Adobe CC update (Windows/Mac OS) 独立升级包下载

    Windows 版 xiaogezi.cn Photoshop CC 下载 Download 大小 Size 日期 Date 文档 Notes Adobe Photoshop 14.2.1 Updat ...

  5. HDU 1789 Doing Homework again【贪心】

    题意:给出n个作业的截止时间,和该作业没有完成会被扣掉的分数.问最少会被扣掉多少分. 第一次做这一题是好久之前,当时不会(不会处理两个关键字关系@_@)---现在还是不会---看了题解---原来是这样 ...

  6. Ubuntu 18.04图形化软件包管理器

    1.ubuntu软件这个管理工具提供了一种管理您系统中软件的好方法,通过他可以很直观的查找软件安装很简单,打开终端,输入以下命令:----------------------------------- ...

  7. 学习Go语言之模板方法模式

    模板方法模式结构图如下.原理是过程实现不一样,但是执行的顺序是按照模板固定好了的.即简单理解为都有1,2,3步骤,但是每一步的实现交由具体实现类不同实现. 1.过程式编程 // 模板方法模式 pack ...

  8. Opencv Mat的三种常用类型简介

    本系列文章由 @YhL_Leo 出品,转载请注明出处. 文章链接: http://blog.csdn.net/yhl_leo/article/details/47683127 本文主要介绍Opencv ...

  9. F - Humidex(1.4.2)

    Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Submit Status Descr ...

  10. 赵雅智_运用Bitmap和Canvas实现图片显示,缩小,旋转,水印

    上一篇已经介绍了Android种Bitmap和Canvas的使用,以下我们来写一个详细实例 http://blog.csdn.net/zhaoyazhi2129/article/details/321 ...