以下是有关Java字符串的十大常见问题 。

1.如何比较字符串? 使用“ ==”还是使用equals()?

简而言之,“ ==”测试引用是否相等,而equals()测试值是否相等。 除非您要检查两个字符串是否是同一对象,否则应始终使用equals()。

如果您了解字符串实习的概念会更好。

2.为什么对于安全敏感信息,char []优于String?

字符串是不可变的 ,这意味着一旦创建它们,它们将保持不变,直到启动垃圾收集器。使用数组,您可以显式更改其元素。 这样,安全敏感信息(例如密码)将不会出现在系统中的任何位置。

3.我们可以在switch语句中使用字符串吗?

是,对于版本7。从JDK 7开始 ,我们可以使用字符串作为切换条件。 在版本6之前,我们不能使用字符串作为切换条件。

// java 7 only!
switch (str.toLowerCase()) {case "a":value = 1;break;case "b":value = 2;break;
}

4.如何将字符串转换为int?

int n = Integer.parseInt("10");

简单,但是经常使用,有时被忽略。

5.如何用空格字符分割字符串?

我们可以使用正则表达式简单地进行拆分。 “ \ s”代表空格字符,例如“”,“ \ t”,“ \ r”,“ \ n”。

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

6. substring()方法是否创建新的字符串?

答案是不。 substring()方法为一个chars数组提供了一个窗口,该chars数组表示现有的String,但不创建新的。 要创建一个新字符串,您可以添加一个空字符串,如下所示:

str.substring(m, n) + ""

这将创建一个新字符串。 上面的方法有时可以使您的代码更快,因为垃圾收集器可以收集未使用的大字符串并仅保留子字符串。

在Oracle JDK 7中,substring()创建一个新字符串。 查看该图以显示JDK 6和JDK 7之间的substring()差异 。

7. String vs StringBuilder vs StringBuffer

String vs StringBuilder:StringBuilder是可变的,这意味着您可以在创建后对其进行修改。
StringBuilder与StringBuffer:StringBuffer是同步的,这意味着它是线程安全的,但比StringBuilder慢。

8.如何重复一个字符串?

在Python中,我们可以将多个数字重复一个字符串。 在Java中,我们可以使用Apache Commons Lang包中StringUtils的repeat()方法。

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

9.如何将字符串转换为日期?

String str = "Sep 17, 2013";
Date date = new SimpleDateFormat("MMMM d, yy", Locale.ENGLISH).parse(str);
System.out.println(date);
//Tue Sep 17 00:00:00 EDT 2013

10.如何计算字符串中字符出现的次数?

使用来自Apache Commons lang的StringUtils。

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

多一个
您知道如何检测字符串是否仅包含大写字母吗?

相关文章:

  • 该图显示了Java字符串的不变性
  • Java代码–将文件转换为字符串
  • 为什么我们需要软件测试?
  • Java基础
参考: Programcreek博客上来自JCG合作伙伴 Ryan Wang 的Java字符串十大常见问题解答 。

翻译自: https://www.javacodegeeks.com/2013/09/top-10-questions-of-java-strings.html

Java字符串的十大问题相关推荐

  1. java char 相等_Java程序员须知Java字符串的十大问题

    相关问题得整理大家可以一起讨论学习!!!学无止境!!!! 1.如何比较字符串?使用" =="还是使用equals()? 简而言之," =="测试引用是否相等,而 ...

  2. java newfile() bug_java初学者小白?遇到BUG就慌了?有关java异常的十大问题详解!...

    1.已检查与未检查 简而言之,必须在方法中显式捕获已检查的异常,或在方法的throws子句中声明该异常.未检查的异常是由无法解决的问题引起的,例如被零除,空指针等.检查的异常特别重要,因为您希望使用A ...

  3. java 异常总结_Java异常的十大问题总结

    本文总结了有关Java异常的十大常见问题. 1.已检查与未检查 简而言之,必须在方法中显式捕获已检查的异常或在方法的throws子句中声明该异常.未检查的异常是由无法解决的问题引起的,例如被零除,空指 ...

  4. 十、深入Java字符串(下篇)

    @Author:Runsen @Written Date:2020/5/22 继续深入Java字符串 文章目录 求下标位置 访问索引 访问字符串 访问字符串的子串 字符串对象的比较 连接字符串 重载 ...

  5. Java 语言中十大“坑爹”功能!

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源:https://www.sohu.com/a/35 ...

  6. Java数组的十大方法

    Java数组的十大方法 以下是Java Array的前10种方法.他们是来自stackoverflow的投票最多的问题. 0.声明一个数组 String[] aArray = new String[5 ...

  7. Java学习系列(十八)Java面向对象之基于UDP协议的网络通信

    UDP协议:无需建立虚拟链路,协议是不可靠的. A节点以DatagramSocket发送数据包,数据报携带数据,数据报上还有目的目地地址,大部分情况下,数据报可以抵达:但有些情况下,数据报可能会丢失 ...

  8. 【引用】Java开发者的十大戒律

    2019独角兽企业重金招聘Python工程师标准>>> 本文转载自liujin.ah <Java开发者的十大戒律> 有许多标准和实践准则可适用于Java开发者,但此处要说 ...

  9. 2021-11-23----韩顺平Java入门第十四天

    韩顺平Java入门第十四天(排序.查找) 1.排序     1).排序的介绍:排序是将多个数据,依指定的顺序进行排列的过程.     2).内部排序:指将需要处理的所有数据都加载到内部存储器中进行排序 ...

最新文章

  1. 在vue项目中对axios进行封装
  2. java中异常处理机制
  3. 实验一线性表的基本操作实现及其应用(JavaScript实现)
  4. 《leetcode》valid-parentheses
  5. android 6.0 ios9谁快,没安卓6.0流畅?iOS 9突飞猛进终于不卡
  6. 试用期这样做更快通过
  7. 客户端与服务器端的认证方式(cookie,token,session)
  8. 云知声原创技术再获肯定:多篇论文被国际语音顶会 INTERSPEECH 2020 收录
  9. 15. CSS 表格
  10. 蓝桥杯题目——平方回文数
  11. 分布式——分布式面试题
  12. android webview 误删,AndroidWebView内核
  13. PHP zip 文件压缩、解压
  14. python右对齐_Python中print函数输出时的左右对齐问题
  15. Python爬虫编程思想(69): 项目实战--抓取当当图书排行榜
  16. 学好UI设计必备软件
  17. Mysql 最全教程
  18. 银联支付(chinapay)java接入避坑指南
  19. z5s+android+4.4,中兴NX403a(Nubia Z5S Mini Android 4.4)刷Recovery教程
  20. nodejs c++ addon插件的应用场景

热门文章

  1. 注解@resource的作用_Bean基于Annotation(注解)的装配方式
  2. MySQL的source命令不加分号和delimiter的使用
  3. hadoop2.6.0+eclipse配置
  4. poi中文api文档
  5. spring一站式开发_Spring开发人员知道的一件事
  6. hadoop lambda_Delta架构:统一Lambda架构并利用Hadoop / REST中的Storm
  7. java jsoup解析_3使用Jsoup解析Java中HTML文件的示例
  8. java ee maven_针对新手的Java EE7和Maven项目–第6部分
  9. jvm虚拟机 基于栈_守护基于JVM的应用程序
  10. Spring Boot微服务,Docker和Kubernetes研讨会–第2部分