因为字符串(String)对象是不可改变的,每当想修改一个字符串(String)时,就必须采用或者将它复制到StringBuffer或者使用下面字符串(String)方法中的一种,这些方法都将构造一个完成修改的字符串的拷贝。

substring( )
利用substring( )方法可以截取子字符串,它有两种形式。其中第一种形式如下:

String substring(int startIndex)

这里startIndex指定了子字符串开始的下标。这种形式返回一个从startIndex开始到调用字符串结束的子字符串的拷贝。

substring( )方法的第二种形式允许指定子字符串的开始和结束下标:

String substring(int startIndex, int endIndex)

这里startIndex指定开始下标,endIndex指定结束下标。返回的字符串包括从开始下标直到结束下标的所有字符,但不包括结束下标对应的字符。
下面的程序使用substring( )方法完成在一个字符串内用一个子字符串替换另一个子字符串的所有实例的功能:

// Substring replacement.
class StringReplace { public static void main(String args[]) { String org = "This is a test. This is, too."; String search = "is"; String sub = "was"; String result = ""; int i; do { // replace all matching substrings System.out.println(org); i = org.indexOf(search); if(i != -1) { result = org.substring(0, i); result = result + sub; result = result + org.substring(i + search.length()); org = result; } } while(i != -1); }
}

这个程序的输出如下所示:

This is a test. This is, too.
Thwas is a test. This is, too.
Thwas was a test. This is, too.
Thwas was a test. Thwas is, too.
Thwas was a test. Thwas was, too.

concat( )
使用concat( )可以连接两个字符串,一般形式如下:

String concat(String str)

这个方法创建一个新的对象,该对象包含调用字符串。而str的内容跟在调用字符串的后面。concat( )方法与+运算符执行相同的功能。例如:

String s1 = "one";
String s2 = s1.concat("two");

将字符串“onetwo”赋给s2。它和下面的程序段产生相同的结果:

String s1 = "one";
String s2 = s1 + "two";

replace( )
replace( )方法用另一个字符代替调用字符串中一个字符的所有具体值。它具有如下的一般形式:

String replace(char original, char replacement)

这里original指定被由replacement指定的字符所代替的字符,返回得到的字符串。例如:

String s = "Hello".replace('l', 'w');

将字符串“Hewwo”赋给s。

trim( )
trim( )方法返回一个调用字符串的拷贝,该字符串是将位于调用字符串前面和后面的空白符删除后的剩余部分。它的一般形式如下:

String trim( )

这里是一个例子:

String s = " Hello World ".trim();

将字符串“Hello World”赋给s。

trim( )方法在处理用户输入的命令时,是十分有用的。例如,下面的程序提示用户输入一个州名后显示该州的首府名。

程序中使用trim( )方法删除在用户输入期间,不经意间输入的任何前缀或后缀空白符。

// Using trim() to process commands.
import java.io.*;
class UseTrim { public static void main(String args[]) throws IOException { // create a BufferedReader using System.in BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str; System.out.println("Enter 'stop' to quit."); System.out.println("Enter State: "); do { str = br.readLine(); str = str.trim(); // remove whitespace if(str.equals("Illinois")) System.out.println("Capital is Springfield."); else if(str.equals("Missouri")) System.out.println("Capital is Jefferson City."); else if(str.equals("California")) System.out.println("Capital is Sacramento."); else if(str.equals("Washington")) System.out.println("Capital is Olympia."); // ... } while(!str.equals("stop")); }
}

Java基础之如何修改字符串?相关推荐

  1. 【java基础知识】修改字符串的编码格式

    String judge="停车位:"+String.valueOf(area_number);String judge_final = new String(judge.getB ...

  2. JAVA基础九 数字与字符串

    文章目录 JAVA基础九 数字与字符串 01 装箱与拆箱 1.1 封装类 1.2 Number类 1.3 基本类型转封装类 1.4 封装类转基本类型 1.5 自动装箱 1.6 自动拆箱 1.7 int ...

  3. 深入Java基础(二)——字符串家族

    上一篇写了基本数据类及其包装类详解,这篇我们就来讨字符串这个家族吧,这个也是重中之重啊!!! 文章结构: 1.众说纷纷的equals和==: 2.字符串家族的基本知识以及字符串家族的源码解读: 3.字 ...

  4. java中井号字符串_深入Java基础(二)——字符串

    这段时间在准备找一份java实习工作,所以来把基础知识整理归纳一下 文章结构: 1.equals和== 2.字符串的基本知识以及字符串的源码解读: 3.字符串的注意点以及使用推荐: 一.equals和 ...

  5. Java 1.1.3 修改字符串、不可变字符串

    修改字符串 String类没有提供用于修改字符串的方法.如果希望将 greeting 的内容修改为" Help!", 不能直接地将 greeting的最后两个位置的字符修改为 ' ...

  6. Java基础(7)字符串

    由字符组成的一串字符序列,称为"字符串". 1.Java中的字符串 Java中的字符串是由双引号括起来的多个字符,下面示例都是表示字符串常量: "Hello World& ...

  7. java class修改_【原创】Java基础之简单修改jar包中的class

    有时需要修改很多jar(假设这些jar都位于lib目录)中其中一个jar中的某一个类,而且又没有原始代码或ide,这时最简单的方式是: 1 进入lib目录 #cd lib#ls test.jar de ...

  8. java list 去空字符串_【JAVA基础】list和字符串判空

    前言: 我们在项目中经常需要对获取的list集合或String类型变量判空,看前辈的代码,不同的人判空的方法不一样,那么,Java代码中,对list集合和String类型变量到底该如何判空呢? 一.J ...

  9. Java基础(数据类型、字符串)

    Java基本程序设计结构 数据类型 整型 浮点类型 char类型 boolean类型 运算符 数值类型之间的转换 强制类型转换 字符串 拼接 String API String常用的方法 空串与Nul ...

最新文章

  1. 美国互联网瘫痪了,你的密码怎么办?
  2. 浙江大学计算机研究生分数线初试单科学科,2016年浙江大学计算机考研复试分数线_浙江大学考研分数线...
  3. Yann LeCun、吴恩达的新年AI预测:强调“少样本学习”,AI恐慌在减少
  4. 云网融合 — 应用场景
  5. ms sql 聚合事例
  6. 软件项目管理0716:责任分工明确
  7. python创建项目包
  8. Android 页面布局xd,Adobe XD强大的布局系列工具 助你事半功倍
  9. css响应式布局_用 CSS Grid 布局制作一个响应式柱状图
  10. mysql5.3.4 mac 配置_Mac下安装与配置MySQL
  11. 世界十大极限运动是什么
  12. Java 将控制台输出打印 输出到本地文件
  13. AVC编码中的规格 :High、Baseline、Main什么意思?还有High@L3.0、High@L4.0、High@L5.1等
  14. elementUI 表格宽度自适应、不换行
  15. Java 细品 重写equals方法 和 hashcode 方法
  16. 【文献阅读2020】 像素级自适应学习的超分辨率Pixel-Level Self-Paced Learning For Super-Resolution
  17. 腾讯云部署hexo博客系统
  18. Unity中键名称与键位对应一览
  19. 基于JAVA和MYSQL数据库实现的图书资料管理信息系统
  20. TelephonyTesgistry

热门文章

  1. [转载] Python的双端队列deque
  2. quatus ii 常见错误及其改正方法
  3. 路由算法之LS算法和DV算法全面分析
  4. LeetCode-C#实现-链表(#19/21/141/206/707/876)
  5. bzoj千题计划269:bzoj2655: calc (拉格朗日插值)
  6. HTML5学习笔记(二十六):JavaScript的错误处理
  7. Java知多少(84)图形界面之布局设计
  8. [转]麻省理工学院(MIT)研究生学习指导[上]
  9. 修改ORACLE RAC的字符集(记录一下)
  10. 【RobotStudio学习笔记】(二)手动操作