java 去掉前后逗号_Java拼接字符串时,去掉最后一个多余的逗号(及不产生多余的逗号)...

作者初学Java,遇到一道题:

已知一个List中存有若干人的姓名,如list=[tom jack smith nickel],要求将list中的所有姓名拼接成一个字符串“tom,jack,smith,nickel”

在拼接字符串时,可能会在字符串最后多出一个逗号。下面注释中提供了两种解决方法。有错误或不完善之处欢迎提出来。

package com.java;

import java.util.ArrayList;

import java.util.Iterator;

import java.util.List;

public class TestFour {

public static void main(String[] args) {

List list = new ArrayList();

list.add("tom");

list.add("jack");

list.add("smith");

list.add("nickel");

/* 去掉最后一个多余的逗号

String s = "";

Iterator it = list.iterator();

while(it.hasNext()){

String o = (String)it.next();

s += o + ",";

if(!it.hasNext()){

StringBuffer s1 = new StringBuffer(s);

s1 = s1.deleteCharAt(s1.length() - 1);

s = s1.toString();

}

}

System.out.print(s);

*/

/* 不产生多余的逗号

StringBuffer s = new StringBuffer();

Iterator it = list.iterator();

while(it.hasNext()){

Object o = it.next();

if(s.length() > 0){

s.append(",");

s.append(o);

} else{

s.append(o);

}

}

String ss = s.toString();

System.out.println(ss);

*/

}

}

2019.3.10更新

统计字符串中各单词出现的次数,例如:字符串为“java,java,j2ee,ibm,j2ee,ibm,j2me,java”,结果为“j2me-1个;java-3个;ibm-2个;j2ee-2个”

package com.first;

import org.apache.commons.lang3.StringUtils;// http://commons.apache.org/proper/commons-lang/download_lang.cgi

import java.util.HashMap;

import java.util.Map;

public class CountWords {

public static void main(String[] args) {

String str = "java,java,j2ee,ibm,j2ee,ibm,j2me,java";

String[] arr = str.split(",");//字符串转为数组,用“,”分割

Map map = new HashMap<>();//以单词作为key,出现次数作为value,存进Map

/*

*遍历数组,判断Map中是否存在此单词。不存在,则将该单词存进去,value为1;存在,则将value加1。

*/

for (String e : arr) {

if (map.get(e) == null){

map.put(e,1);

}else{

map.put(e,map.get(e) + 1);

}

}

int size = map.keySet().size(); //下面要创建一个数组,这里先获得数组的长度

String[] strArr = new String[size];

int index = 0;//数组下标

for (Object e : map.keySet()) {

strArr[index] = e + "-" + map.get(e) + "个";//将遍历Map的结果存进数组,为了不产生多余的符号

index++;

}

System.out.println(StringUtils.join(strArr,";"));//将数组转为字符串,用“,”分割

}

}

通过“StringUtils.join(数组,分隔符)”输出字符串,避免产生多余符号。调用此方法需要引入“commons-lang3”包,可以去https://www-eu.apache.org/dist//commons/lang/binaries/commons-lang3-3.8.1-bin.zip下载3.8.1版本的jar包。

或者http://commons.apache.org/proper/commons-lang/download_lang.cgi

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值