Java字符串的十大问题

以下是有关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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/367535.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php原生sql语法,thinkphp执行原生SQL语句的实现方法

怎样在thinkphp里面执行原生的sql语句?$Model new Model();//或者 $Model D(); 或者 $Model M();$sql "select * from order";$voList $Model->query($sql);只是需要new一个空的模型继承Model中的方法。注意query是查功能,execute是增…

Jquery中如何获取元素的文本,值,属性和内容

jQuery DOM 操作jQuery 中非常重要的部分,就是操作 DOM 的能力。jQuery 提供一系列与 DOM 相关的方法,这使访问和操作元素和属性变得很容易。提示:DOM Document Object Model(文档对象模型)DOM 定义访问 HTML 和 XML …

Python中的__new__()方法的使用

__new__() 函数只能用于从object继承的新式类。 先看下object类中对__new__()方法的定义: class object:staticmethod # known case of __new__def __new__(cls, *more): # known special case of object.__new__""" T.__new__(S, ...) -> a new …

什么是消息中间件

面向消息的中间件:Message-oriented Middleware, MOM 基本功能: 将信息以消息的形式,从一个应用程序传送到另一个或多个应用程序 主要特点: 消息异步接受,类似手机短信的行为,消息发送者不需要等待消息接受…

用Java分割大型XML文件

上周,我被要求用Java编写一些东西,该东西能够将单个30GB XML文件拆分为可配置文件大小的较小部分。 该文件的使用者将是一个中间件应用程序,该应用程序存在XML较大的问题。 在后台,它使用某种DOM解析技术,使它在一段时…

am82.top 1.php,Droppy v2.1.3 – PHP在线网盘系统

更新跨度比较大从1.4.6-2.1.3的更新日志我都贴出来利V2.1.9 (10 July, 2019)- Added option to define maximum upload chunk size in the admin panel- Fixed an issue where downloads were corruptedV2.1.8 (10 July, 2019)- Fixed an issue where upload password field wa…

抛出异常–缓慢而丑陋

这篇文章是关于历史经验以及最近应用的性能优化技术的。 几年前,我在特定的应用程序中发誓,我不得不发现隐藏在真正聪明的工程“技术”之下的无证行为。 它是一个典型的用于发票的单片Java EE应用程序。 最好忘记确切的代码,但是我记得开发人…

信号与线性系统翻转课堂笔记9——傅里叶变换概念

信号与线性系统翻转课堂笔记9——傅里叶变换 The Flipped Classroom9 of Signals and Linear Systems 对应教材:《信号与线性系统分析(第五版)》高等教育出版社,吴大正著 一、要点 (1,重点)…

abstract修饰符

1、一个类不能同时被 abstract 和 final 修饰。 2、如果一个类包含抽象方法,那么该类一定要声明为抽象类,否则将出现编译错误。 3、抽象类可以包含抽象方法和非抽象方法。 4、抽象方法是由子类来实现。 5、抽象方法不能被声明成 final 和 static。 6、任…

埃及分数问题(带乐观估计函数的迭代加深搜索算法-IDA*)

#10022. 「一本通 1.3 练习 1」埃及分数 【题目描述】 在古埃及,人们使用单位分数的和(形如 $\dfrac{1}{a}​$​​ 的,$a$ 是自然数)表示一切有理数。如:$\dfrac{2}{3} \dfrac{1}{2} \dfrac{1}{6}​$​​&#xff0c…

玩转Jquery中的动画效果(animate方法)

jQuery 动画 - animate() 方法jQuery animate() 方法用于创建自定义动画。语法:$(selector).animate({params},speed,callback);必需的 params 参数定义形成动画的 CSS 属性。可选的 speed 参数规定效果的时长。它可以取以下值:"slow"、"…

matlab 等分矩阵,用matlab根据列拆分矩阵.

使用logical indexingBA(A(:,end)10,:);CA(A(:,end)2,:);回报>> BB 1 4 2 5 102 1 5 6 10>> CC 2 4 5 6 22 3 5 4 2编辑:在回复丹的评论这里是一般情况的扩展e unique(A(:,end));B cell(size(e));for k 1:numel(e)B{k} A(A(:,end)e(k),:);end或者更…

点击网页跟踪php代码的工具,使用ltrace工具跟踪PHP库函数调用的方法

本文实例讲述了使用ltrace工具跟踪PHP库函数调用的方法。分享给大家供大家参考,具体如下:可能大家已经很熟悉使用strace来跟踪系统调用,今天介绍一个跟踪库函数的利器ltrace比如我有这么一段PHP代码test.php:$y 1380;$arr array…

HDU 2841 Visible Trees(容斥)题解

题意:有一块(1,1)到(m,n)的地,从(0,0)看能看到几块(如果两块地到看的地方三点一线,后面的地都看不到)。 思路:…

Jquery获取服务器端控件ID的方法

<asp:textbox runat"server" id"txtMessage" textmode"SingleLine">some strings here...</asp:textbox>但是当这段代码输出到客户端时就变成了这样&#xff1a;<input name"ctl00$txtMessage" id"ctl00_txtMessa…

安全地创建和存储密码

几乎每次涉及用户配置文件时&#xff0c;都必须管理用户凭据&#xff0c;从而能够创建和存储用户密码。 通常应该使用散列密码和盐分密码来准备数据库公开和通过使用Rainbow表进行散列反转的密码。 但是&#xff0c;找到以明文形式存储的密码并不少见&#xff08;很不幸&#…

Swift Defer 延迟调用

1、Defer 在一些语言中&#xff0c;有 try/finally 这样的控制语句&#xff0c;比如 Java。这种语句可以让我们在 finally 代码块中执行必须要执行的代码&#xff0c;不管之前怎样的兴风作浪。在 Swift 2.0 中&#xff0c;Apple 提供了 defer 关键字&#xff0c;让我们可以实现…

mysql strtok,strtok()和strtok_r()

下面的说明摘自于最新的Linux内核2.6.29&#xff0c;说明了strtok()这个函数已经不再使用&#xff0c;由速度更快的strsep()代替/** linux/lib/string.c** Copyright (C) 1991, 1992 Linus Torvalds*//** stupid library routines.. The optimized versions should generally b…

from 下拉框多个值提交_Git commit 多行信息提交

git commit可接受多个消息标志(-m)来允许多行提交原文地址&#xff1a;https://www.stefanjudis.com/today-i-learned/git-commit-accepts-several-message-flags-m-to-allow-multiline-commits/原文作者&#xff1a;Stephan Schneider在命令行上使用git时&#xff0c;您可能已…

处理缓慢的资源泄漏

使用Java监视器查找资源泄漏 查找缓慢的资源泄漏是使应用程序服务器长时间保持正常运行的关键。 在这里&#xff0c;我解释了如何使用Java监视器来发现缓慢的资源泄漏&#xff0c;以及如何验证它们是实际的泄漏&#xff0c;而不仅仅是额外的预分配到某些HTTP连接器或数据库池中…