Java字符串问题Top10

Java语言中StringBuffer的用法 StringBuffer的常用方法实例,如:append、insert等等。其中,StringBuffer与String的区别详细做了例子。 立即下载

以下是10个最常见的Java字符串问题。

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

简单地说,“==”测试引用同一地址,而equals()测试值是否相等。除非需要检查两个字符串是否是同一个对象,否则应该总是使用equals()方法。

如果你知道字符串驻留(string interning)的概念的就更好了。

译注:字符串驻留是指为每个独立的String值只保留一个不可改变的拷贝,详细解释可参见String interning词条。

2、为什么为在处理私密信息的时候,选择char [ ]比String好?

String是不可改变的。这意味着一旦String对象被创建,那个地址上的值将保持不变,直到垃圾收集器有空来做自动清理。而使用char[ ]可以(在用完后)明确地修改它的元素。这种一来,私密信息(例如密码)就不会在系统的任何地方出现。

3、我们可以在switch语句中用String作分支条件吗?

从JDK 7开始是可以的。我们可以使用String符串作为Switch条件。第JDK 6之前,我们不能使用String作为Switch条件。

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

4 、如何转换String为int?

1
intn = Integer.parseInt("10");

调用很简单,使用如此频繁以致有时会被忽略。

5 、如何用空白符分割字符串?

可以简单地使用正则表达式做分割。“ \s ”代表所有空格符,如“ ”、 “ \ ”、 “ \ r”、“ \ n ”。

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

6 、substring() 具体干了些什么?

在JDK 6中,substring() 提供了一个显示已有字符串char[]的接口,但不创建新字符串。如果需要创建一个新的char[]表示的字符串,可以像下面一样与一个空字符串相加:

1
str.substring(m, n) + ""

这样会创建一个新的字符数组,表示新的字符串。示例方法有时可以使代码运行更快,因为垃圾收集器可以收集未使用的大字符串只保留子串。

在Oracle JDK 7中 ,substring()会创建一个新的字符数组而不是使用现有的。点击这个链接有图解说明JDK 6和JDK 7的substring()之间的差异。

7、String vs StringBuilder vs StringBuffer

  • String 与StringBuilder的区别:StringBuilder的是可变的,这意味着可以在创建以后再作修改。
  • StringBuilder与StringBuffer的区别: StringBuffer的是同步的,这意味着它是线程安全的,但速度比StringBuilder慢。

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

在Python中,我们可以乘以一个数字来重复字符串。在Java中,我们可以使用Apache公共语言包(Apache Commons Lang package)中的repeat()。

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

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

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

10、如何统计某字符在一个字符串中的出现次数?

使用apache公共语言包中的StringUtils:

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

java字符串处理取出括号内的字符串 java字符串处理取出括号内的字符串 都是我自己试过可以用的j 立即下载

相关推荐

告别‘线束丛林’:手把手拆解车身域控制器(BCM/PEPS/网关)的硬件选型与PCB布局要点

本文深入解析车身域控制器的硬件选型与PCB布局要点,涵盖主控MCU选择、通信接口设计、电源架构优化及EMC设计等关键环节。通过实战案例分享,帮助工程师解决高密度集成带来的电源完整性、热管理和信号隔离挑战,实现更稳定高效的汽车电子系统设计。

weixin_42567279的博客 396

Java字符串的处理

特性String是否可变不可变可变可变线程安全是是否性能最低中等最高(单线程情况下)使用场景少量字符串修改多线程环境中大量字符串修改单线程环境中大量字符串修改。

m0_73837751的博客 1270

不只是CPU主频:深入解析英飞凌Aurix TC3xx各外设时钟树(CAN、以太网、Flash时序如何配置)

本文深入解析英飞凌Aurix TC3xx系列微控制器的外设时钟树配置,涵盖CAN、以太网和Flash时序的优化方法。通过详细分析时钟系统架构、关键外设配置及多外设协同设计策略,帮助工程师实现高性能汽车电子控制单元(ECU)开发。特别关注系统时钟的灵活配置与EMC优化技巧,提升系统实时性和可靠性。

weixin_29189373的博客 401

【Java基础】Java字符串的处理

在Java中定义一个字符串最简单的方法是用双引号把它包围起来。这种用双引号括起来的一串字符实际上都是String对象,如字符串"Hello"在编译后即成为String对象。因此也可以通过创建String类的实例来定义字符串。不论使用哪种形式创建字符串,字符串对象一旦被创建,其值是不能改变的,但可以使用其他变量重新赋值的方式进行更改。1.直接定义字符串直接定义字符串是指使用双引号表示字符串中的内容,例如"HelloJava"、"Java编程"等。或者注意2.{............

wang_qiu_hao的博客 7328

STM32F103C8T6的PC13-15引脚配置避坑指南:为什么你的IO口不工作?

本文详细解析了STM32F103C8T6的PC13-15引脚作为普通IO口不工作的原因及解决方案。这三个引脚默认关联侵入检测和低速外部时钟等特殊功能,需先禁用TAMPER和LSE,并开启AFIO时钟,才能正确配置为普通GPIO。文章提供了标准外设库和HAL库的配置步骤、常见问题排查方法及硬件设计注意事项。

weixin_29169899的博客 523

nRF52840 低功耗蓝牙开发指南:从硬件架构到物联网应用实战

本文深入解析nRF52840低功耗蓝牙芯片的硬件架构与开发实践,涵盖从开发环境搭建到BLE协议栈开发的详细指南。通过实战案例分享低功耗优化技巧,帮助开发者高效实现物联网应用,特别适合智能家居和工业场景。

d3e4f的博客 418

java字符串中常用的10个方法

java字符串中常用的10个方法

st200112266的博客 5873

从零构建知识图谱:本体工程与知识建模实战指南

本文是一份从零构建知识图谱的实战指南,重点阐述了知识建模与本体工程的核心地位。文章详细介绍了如何使用Protégé工具进行本体设计,包括定义领域、复用现有本体、构建类层次与属性约束,并讲解了如何利用D2RQ工具将关系数据库数据转换为RDF三元组,最终通过Apache Jena Fuseki搭建SPARQL端点进行知识查询与推理,让知识图谱真正“活”起来。

weixin_29057695的博客 571

Java基础--------字符串操作

一. 字符串(String类) 字符是一种通用数据类型,是用单引号括起来的一个字符,如 'a'、'A'、'C'。而跟字符密切相关的通用数据类型是字符串。字符串常量是用双引号括起来的一串字符,如"你好"、"Hello World !\n"。在Java中,字符串常量是作为String类的一个特定的对象来处理的,而不是一个数据。 1.1 字符串的创建 package c...

詹煜彪9527 1万+

FTP新手必看:vsftpd 530登录错误的8种实战解决方案(附详细配置步骤)

本文针对FTP服务配置中常见的vsftpd 530登录错误,提供了8种实战解决方案。从理解错误本质入手,系统性地排查用户列表策略、PAM认证、系统黑名单、Shell限制、目录权限及DNS解析等问题,并附有详细的配置步骤与命令,帮助新手快速定位并解决登录失败难题。

ik678901的博客 696

汽车级智能栅极驱动器深度解析 | 连载03:功能框图与工作模式详解

在前两期连载中,我们分析了DRV871x-Q1的产品架构、引脚配置和电气特性。本期我们将深入探讨DRV871x-Q1的功能框图和工作模式,这是理解芯片内部工作机制的关键。通过分析功能框图,我们能够清晰地了解各功能模块之间的关系和信号流向;通过工作模式分析,我们能够掌握芯片在不同应用场景下的配置方法。这些知识对于系统设计和故障排查都至关重要。

VehSwHwDeveloper的博客 1101

Java 中的字符串处理详解

String类用于表示字符串,是一个不可变的字符序列。不可变意味着一旦创建,字符串的值就不能更改。每次对字符串进行操作都会创建一个新的String对象。类用于创建可变的字符串。它提供了一些方法来修改字符串内容,例如追加、插入、删除等。是非线程安全的,但在大多数单线程环境中更快。类也是用于创建可变的字符串,类似于,但它是线程安全的。的所有方法都是同步的,因此在多线程环境中可以安全使用,但性能较略低。String类用于表示不可变字符串,适用于字符串内容不变的场景。

yimeixiaolangzai的博客 1020

【目标追踪】python背景模型减除法原理及其实现

python基于背景模型差法的视频目标追踪帧差法的问题:背景模型差法目标追踪原理1. 基本思路:2. 图例讲解:3. 存在的问题&如何解决:4. 最终效果预览第一步——调用摄像头:1. 使用opencv打开视频or摄像头:2. 读取逐帧图片:第二步——处理图片:1. 转换成灰度图:3. 累加权重重构背景:3. 计算像素差:3. 使用中值滤波和膨胀腐蚀去噪:3.1 中值滤波:3.2 图像腐蚀...

梁瑛平的博客 1948

java stringbuffer 空格_Java字符串问题Top10

以下是10个最常见的Java字符串问题。1、如何比较字符串?使用“==”还是使用equals() ?简单地说,“==”测试引用同一地址,而equals()测试值是否相等。除非需要检查两个字符串是否是同一个对象,否则应该总是使用equals()方法。如果你知道字符串驻留(string interning)的概念的就更好了。译注:字符串驻留是指为每个独立的String值只保留一个不可改变的拷贝,详细解...

weixin_39637723的博客 156

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

上一篇: Android与js交互实例
下一篇: onTouchEvent和onInterceptTouchEvent详细研究
HabbyGe
博客等级 码龄16年 46粉丝 143原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值