大内高手社区

标题: Java教程中String类介绍和应用 [打印本页]

作者: 栖迟    时间: 2022-3-23 16:41
标题: Java教程中String类介绍和应用
  作者:Vamei出处:http://www.cnblogs.com/vamei欢迎转载,也请保留这段声明。谢谢!

  之前的Java基础系列中讨论了Java最核心的概念,特别是面向对象的基础。在Java进阶中,我将对Java基础进行补充,并转向应用层面。

  大部分编程语言都能够处理字符串(String)。字符串是有序的字符集合,比如"HelloWorld!"。在Java中,字符串被存储为String类对象。调用字符串对象的方法,可以实现字符串相关的操作。

  String类包含在java.lang包中。这个包会在Java启动的时候自动import,所以可以当做一个内置类(built-inclass)。我们不需要显式的使用import引入String类。
[attach]526[/attach]

  一、创建字符串

  我们之前使用类来创建对象。需要注意的时候,创建String类对象不需要new关键字。比如:

  publicclassTest

  {

  publicstaticvoidmain(String[]args)

  {

  Strings="HelloWorld!";

  System.out.println(s);

  }

  }

  实际上,当你写出一个"HelloWorld"表达式时,内存中就已经创建了该对象。如果使用newString("HelloWorld!"),会重复创建出一个字符串对象。

  String类是唯一一个不需要new关键字来创建对象的类。使用的时候需要注意。

  二、字符串操作

  可以用+实现字符串的连接(concatenate),比如:

  "abc"+s

  字符串的操作大都通过字符串的相应方法实现,比如下面的方法:

  方法效果

  s.length()返回s字符串长度

  s.charAt(2)返回s字符串中下标为2的字符

  s.substring(0,4)返回s字符串中下标0到4的子字符串

  s.indexOf("Hello")返回子字符串"Hello"的下标

  s.startsWith("")判断s是否以空格开始

  s.endsWith("oo")判断s是否以"oo"结束

  s.equals("GoodWorld!")判断s是否等于"GoodWorld!"

  ==只能判断字符串是否保存在同一位置。需要使用equals()判断字符串的内容是否相同。

  s.compareTo("HelloNerd!")比较s字符串与"HelloNerd!"在词典中的顺序,

  返回一个整数,如果<0,说明s在"HelloNerd!"之前;

  如果>0,说明s在"HelloNerd!"之后;

  如果==0,说明s与"HelloNerd!"相等。

  s.trim()去掉s前后的空格字符串,并返回新的字符串

  s.toUpperCase()将s转换为大写字母,并返回新的字符串

  s.toLowerCase()将s转换为小写,并返回新的字符串

  s.replace("World","Universe")将"World"替换为"Universe",并返回新的字符串

  三、不可变对象

  String类对象是不可变对象(immutableobject)。程序员不能对已有的不可变对象进行修改。我们自己也可以创建不可变对象,只要在接口中不提供修改数据的方法就可以。

  然而,String类对象确实有编辑字符串的功能,比如replace()。这些编辑功能是通过创建一个新的对象来实现的,而不是对原有对象进行修改。比如:

  s=s.replace("World","Universe");

  右边对s.replace()的调用将创建一个新的字符串"HelloUniverse!",并返回该对象(的引用)。通过赋值,引用s将指向该新的字符串。如果没有其他引用指向原有字符串"HelloWorld!",原字符串对象将被垃圾回收。

  【声明】本文转载Vamei,作者;Vamei,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与联系我们,我们会予以更改或删除相关文章,以保证您的权益!






欢迎光临 大内高手社区 (https://bbs.tedu.cn/) Powered by Discuz! X3.4