面试时经常考的------对字符串的操作(一)

本文介绍了一种将数组或集合中的元素转换为字符串的方法,并通过四种不同的Java实现方式进行了比较。这些方法都涉及到如何有效地在元素间插入分隔符的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/**
* 将一个集合/数组中的元素组成一个字符串,每个元素之间用一个指定的分隔符隔开
**/

如有更好的解决方法,希望贴上来!

Code:
  1. /**
  2. *将一个集合/数组中的元素组成一个字符串,每个元素之间用一个指定的分隔符隔开
  3. */
  4. //下面是实现的几种解决办法,个人觉得第四种较好
  5. publicstaticvoidgetContents1(Stringstr){
  6. StringBuildersb=newStringBuilder();
  7. for(inti=0;i<str.length();i++){
  8. Stringcontent=str.charAt(i)+"";
  9. sb.append(content);
  10. //判断不是str的最后一个元素时,追加分隔符:"@"
  11. if(i<str.length()-1){
  12. sb.append("@");
  13. }
  14. }
  15. System.out.println(sb.toString());
  16. }
  17. publicstaticvoidgetContents2(Stringstr){
  18. StringBuildersb=newStringBuilder();
  19. for(inti=0;i<str.length();i++){
  20. Stringcontent=str.charAt(i)+"@";
  21. sb.append(content);
  22. }
  23. //截取最后一个分隔符之前的内容
  24. System.out.println(sb.substring(0,sb.length()-1));
  25. }
  26. publicstaticvoidgetContents3(Stringstr){
  27. StringBuildersb=newStringBuilder();
  28. for(inti=0;i<str.length();i++){
  29. Stringcontent=str.charAt(i)+"@";
  30. sb.append(content);
  31. }
  32. //将最后一个多余的分隔符删除
  33. System.out.println(sb.deleteCharAt(sb.length()-1));
  34. //删除第一个比删除最后一个省去减法运算
  35. StringBuffersb1=newStringBuffer();
  36. for(inti=0;i<str.length();i++){
  37. Stringcontent="@"+str.charAt(i);
  38. sb1.append(content);
  39. }
  40. //将最后一个多余的分隔符删除
  41. System.out.println(sb1.deleteCharAt(0));
  42. }
  43. publicstaticvoidgetContents4(Stringstr){
  44. StringBuffersb=newStringBuffer();
  45. if(null!=str&&str.length()>0){
  46. if(str.length()==1){
  47. sb.append(str);
  48. System.out.println(sb);
  49. }else{
  50. //最少的判断次数
  51. sb.append(str.charAt(0));
  52. for(inti=1;i<str.length();i++){
  53. Stringcontent="@"+str.charAt(i);
  54. sb.append(content);
  55. }
  56. System.out.println(sb);
  57. }
  58. }else{
  59. System.out.println("请输入元素!");
  60. }
  61. }
  62. /**
  63. *publicstaticStringJoiN(List<String>list){StringBuildersb;
  64. *if(null!=list&&!list.isEmpty()){sb.append(list.get(0));for(int
  65. *i=1;i<list.size;i++){sb.append(";"+list.get(i));}}return
  66. *sb.toString();}
  67. */


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值