全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

十大常见Java String问题_动力节点Java学院整理

本文介绍Java中关于String最常见的10个问题:

1. 字符串比较,使用 "==" 还是 equals() ?

   简单来说, "==" 判断两个引用的是不是同一个内存地址(同一个物理对象).

而 equals 判断两个字符串的值是否相等.

除非你想判断两个string引用是否同一个对象,否则应该总是使用 equals()方法.

如果你了解 字符串的驻留 ( String Interning ) 则会更好地理解这个问题

2. 对于敏感信息,为何使用char[]要比String更好?

   String是不可变对象, 意思是一旦创建,那么整个对象就不可改变. 即使新手觉得String引用变了,实际上只是(指针)引用指向了另一个(新的)对象.

而程序员可以明确地对字符数组进行修改,因此敏感信息(如密码)不容易在其他地方暴露(只要你用完后对char[]置0).

3. 在switch语句中使用String作为case条件?

   从 JDK7 开始,这是可以的,啰嗦一句,Java 6 及以前的版本都不支持这样做.

// 只在java 7及更高版本有效! 
 switch (str.toLowerCase()) { 
    case "a": 
      value = 1; 
      break; 
    case "b": 
      value = 2; 
      break; 
 } 

4. 转换String为数字

   对于非常大的数字请使用Long,代码如下

 int age = Integer.parseInt("10"); 
 long id = Long.parseLong("190"); // 假如值可能很大. 

5. 如何通过空白字符拆分字符串

   String 的 split()方法接收的字符串会被当做正则表达式解析,

   "\s"代表空白字符,如空格" ",tab制表符"\t", 换行"\n",回车"\r".

   而编译器在对源代码解析时,也会进行一次字面量转码,所以需要"\\s".

 String[] strArray = aString.split("\\s+"); 

6. substring()  方法内部是如何处理的?

   在JDK6中,substring()方法还是共用原来的char[]数组,通过偏移和长度构造了一个"新"的String。

   想要substring()取得一个全新创建的对象,使用如下这种方式:

 String sub = str.substring(start, end) + ""; 

当然 Java 7 中,substring()创建了一个新的char[] 数组,而不是共用.

想要了解更多,请参考:  JDK6和JDK7中substring()方法及其差异

7. String vs StringBuilder vs StringBuffer

StringBuilder 是可变的,因此可以在创建以后修改内部的值.

StringBuffer 是同步的,因此是线程安全的,但效率相对更低.

8. 如何重复拼接同一字符串?

方案1: 使用Apache Commons Lang 库的 StringUtils 工具类.

 String str = "abcd"; 
 String repeated = StringUtils.repeat(str,3);//abcdabcdabcd 

方案2:

使用 StringBuilder 构造. 更灵活.

 String src = "name"; 
 int len = src.length(); 
 int repeat = 5; 
 StringBuilder builder = new StringBuilder(len * repeat); 
 for(int i=0; i<repeat; i++){ 
  builder.append(src); 
 } 
 String dst = builder.toString(); 

9. 如何将String转换为日期?

 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); 
 String str = "2016-10-07"; 
 Date date = format.parse(str); 
 System.out.println(format.format(date));//2016-10-07 

10. 如何统计某个字符出现的次数?

同样使用Apache Commons Lang 库 StringUtils  类:

 int n = StringUtils.countMatches("11112222", "1"); 
 System.out.println(n); 

以上所述是小编给大家介绍的十大常见Java String问题_动力节点Java学院整理,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


# java  # string  # 问题  # 浅谈java String.split丢失结尾空字符串的问题  # java中String类型变量的赋值问题介绍  # Java中String判断值为null或空及地址是否相等的问题  # 简单谈谈Java中String类型的参数传递问题  # Java中String类(字符串操作)的10个常见问题和解决方法  # java判断字符串String是否为空问题浅析  # 小编  # 的是  # 这是  # 如果你  # 都不  # 也会  # 十大  # 一句  # 在此  # 你想  # 这个问题  # 请使用  # 不容易  # 这样做  # 给大家  # 更高  # 要比  # 在对  # 只在  # 你用 


相关文章: 在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?  天津个人网站制作公司,天津网约车驾驶员从业资格证官网?  定制建站哪家更专业可靠?推荐榜单揭晓  网站制作培训多少钱一个月,网站优化seo培训课程有哪些?  常州自助建站费用包含哪些项目?  官网自助建站系统:SEO优化+多语言支持,快速搭建专业网站  制作网站外包平台,自动化接单网站有哪些?  如何续费美橙建站之星域名及服务?  北京的网站制作公司有哪些,哪个视频网站最好?  微信推文制作网站有哪些,怎么做微信推文,急?  建站之星上传入口如何快速找到?  如何快速生成橙子建站落地页链接?  高性能网站服务器配置指南:安全稳定与高效建站核心方案  制作网站的软件下载免费,今日头条开宝箱老是需要下载怎么回事?  建站上传速度慢?如何优化加速网站加载效率?  如何在阿里云购买域名并搭建网站?  如何访问已购建站主机并解决登录问题?  建站之星后台密码遗忘?如何快速找回?  建站之星安装失败:服务器环境不兼容?  如何制作网站标识牌,动态网站如何制作(教程)?  javascript基本数据类型及类型检测常用方法小结  已有域名和空间,如何快速搭建网站?  制作营销网站公司,淘特是干什么用的?  制作门户网站的参考文献在哪,小说网站怎么建立?  威客平台建站流程解析:高效搭建教程与设计优化方案  如何快速查询域名建站关键信息?  如何在阿里云域名上完成建站全流程?  如何快速选择适合个人网站的云服务器配置?  如何生成腾讯云建站专用兑换码?  成都网站制作公司哪家好,四川省职工服务网是做什么用?  如何使用Golang table-driven基准测试_多组数据测量函数效率  唐山网站制作公司有哪些,唐山找工作哪个网站最靠谱?  小型网站制作HTML,*游戏网站怎么搭建?  c# 在ASP.NET Core中管理和取消后台任务  免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?  活动邀请函制作网站有哪些,活动邀请函文案?  建站主机无法访问?如何排查域名与服务器问题  如何通过虚拟主机空间快速建站?  广东企业建站网站优化与SEO营销核心策略指南  公司网站制作需要多少钱,找人做公司网站需要多少钱?  建站之家VIP精选网站模板与SEO优化教程整合指南  岳西云建站教程与模板下载_一站式快速建站系统操作指南  如何选择美橙互联多站合一建站方案?  枣阳网站制作,阳新火车站打的到仙岛湖多少钱?  代购小票制作网站有哪些,购物小票的简要说明?  自助网站制作软件,个人如何自助建网站?  详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)  GML (Geography Markup Language)是什么,它如何用XML来表示地理空间信息?  如何在新浪SAE免费搭建个人博客?  建站10G流量真的够用吗?如何应对访问高峰? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。