Java学习笔记:字符串与类的初步

Java学习笔记:字符串与类的初步

      Java中,没有专门用于字符串的基本类型,但有一个String类可以用来存储和处理字符串。本文就来介绍String类。关于类的简介,请参考本文的第二小节。。

1、字符串常量与变量

      字符串常量很简单,就是用双引号括起来的部分,如

System.out.println("Hello World!");
      这段代码中的 "Hello World!"就是一个字符串常量。

      而字符串变量,是String类的一个对象。即一个String类型的值。如

String greeting;
greeting = "Hello";
      这就声明了一个String类型的变量:greeting;greeting的值为“Hello”,并且greeting的值是可变的,如果在代码后面重新给greeting赋值,那么greeting的值就会发生变化。示例如下:
public class Test3 {

	public static void main(String[] args) {
		String greeting;
		greeting = "Hello!";
		System.out.println(greeting);
		greeting = "World!";
		System.out.println(greeting);
	}

}
输出结果为:

Hello!
World!

      注意:字符串在使用前,必须初始化。比如上例中的greeting,在使用前,必须赋给其一个值,如果没有值,那么可以令greeting = null;

      字符串可以使用+号来讲两个字符连接起来,以实现两者的拼接。如下:

String name = "Sunny";
String greeting = "Hi " + name;
System.out.println(greeting);
      (注:为了方面,从这里开始,public class xxx和public static void main(String args[])就不再添加。)这段代码的作用是将字符串常量"Hi "与字符串变量name连接起来,并赋给greeting。并将"Hi Sunny"输出到屏幕。(输出时没有双引号,且注意本例中Hi后面的空格,如果没有空格,Java会老老实实的将字符串连接成"HiSunny")

2、类

      第一小节中介绍String时,是称呼String类。那么,什么是类呢?是一种以对象为值的类型。对象是一些可以存储数据执行动作实体。如,String类的对象就存储了由字符串组成的数据,比如"Hello"。对象可以执行的动作称为方法(Method)。String类的大部分方法都会返回(或生成)某些值。如方法length()会返回一个String对象中的字符数。因此"Hello".length()会返回整数5,并可通过下列形式将其存储在一个int变量中:

int n = "Hello".length();
      如上例, 写下对象的名字,后面跟一个点,再跟方法名,以圆括号结尾。这就是调用一个方法执行动作。在调用方法执行动作时,称为 调用了方法,点前面的对象称为 调用对象(calling object)。上面一个例子,是用 常量(字符串常量)为调用对象,也可以用 变量作为调用对象。如:
String greeting = "Hello";
int n = greeting.length();
      在后续文章中,将详细介绍类、对象、面向对象编程等这些术语的概念。
3、字符串方法

      在Java学习笔记的第二篇中,我们了解了Java有两种主要的类型:类类型和基本类型。String类就是一个类类型,所以String类型的变量与int类型的变量不同。它可以命名一个对象,而对象是有方法和值的。所以可以用String的方法来操作字符串的值。调用方法上面已经介绍过了,就是在对象名后加一个点和方法名(包含括号)。常用的字符串方法如下:

      1、 length();取得字符串的长度
 
      2、 equals(Other_String);判断原字符串中的字符是否等于指定字符串中的字符
 
      3、 toLowerCase();将字符串中的英文字符全部转为小写
 
      4、 toUpperCase();将字符串中的英文字符全部转为大写
 
      5、 char charAt(int index);返回指定索引处的字符
 
      6、 int indexOf(char ch);返回指定字符第一个找到的索引位置
 
      7、 int indexOf(String str);返回批定字符串第一个找到的索引位置
 
      8、 int lastIndesOf(char ch);返回指定字符最后一个找到的索引位置
 
      9、 String substring (int beginIndex);取出批定索引处到字符串尾端的子字符串
 
      10、 string substring(int beginIndex,int endIndex);取出指定索引范围子字符串
 
      11、 trim();去除字符首尾的空格。

      这些字符串的具体使用方法,本文就不详细介绍了,请参阅有关书籍。字符串的方法很多,如果你需要对字符串进行某种处理,那么请先查阅相关文档,看是否已经有相应的方法。如果直接写一种字符串处理方法,结果却发现这种方法已经存在,那么是得不偿失的。

4、字符串处理

      String类型的对象是无法修改的,必须"Hello world",没有一种方法能直接将world改成其他单词。但是我们可以将字符串先切断成几份,将需要改变的那一份替换掉,再将这几份重新组合成一个整体,这就在某种程度上完成了字符串的修改。示例如下:

String sentence = "Hello World!";
int position = 7;//因为World第一个字母W在字符串的第六个位置(第一个位置计数为0)
System.out.println("sencentce");
sentence = sentence.substring(0, position) + "Sunny!";
System.out.println("sencentce");
      在这段代码中,substring是字符串的一个方法。 substring(position1, position2)就是取得对象字符串的从position1到position2之间的字符串为一个新的字符串(position必须是整形,且在位置计算上“算头不算尾”)所以,上述方法就是先取得"Hello World"的从0到7的位置,也就是"Hello ",再加上一个字符串常量"Sunny",并将结果赋给sentence,这样,就完成了字符串的“修改”。其他更复杂的方法也类似。

5、转义符  

      在System.out.println()中,用双引号是表示输出的字符串内容,而双引号是不会显示出来的。那么如果自己想输出双引号怎么办?很简单,在需要显示的双引号前面加上一个反斜杠(\)就可以了。如:

System.out.println("Hello \"Sunny\"!");
      输出结果为:Hello "Sunny"!

      其他还有一些特殊的转义字符。如\"双引号、\'单引号、\\反斜杠、\n转到下一行的起始位置、\r回车符、\t制表符,添加一定位数的空格。注意:转义符虽然是两个符号,但在计算字符个数时,只算做一个字符,如上面的例子,有14个字符,而不是16个字符(\"算做一个字符)。

备注:

      有一个字符串类中拥有修改字符串对象的方法。这个类被称为StringBuffer,但本文是针对入门级的,所以这里暂不介绍。

      在字符串中,未初始化、空串""(只有两个双引号)与null是不同的概念。如前文所述,未初始化的对象(没有赋值)不能使用;null是一个特殊的初始化值,是一个不指向任何对象的引用,对引用为null的对象操作会在运行时抛出异常NullPointerException;而空串是长度为0的字符串。

      字符串的比较。 Java不允许自定义操作符重载,因此字符串的比较要用compareTo() 或者 compareToIgnoreCase()。s1.compareTo(s2),返回值大于0则,则前者大;等于0,一般大;小于0,后者大。比较的依据是字符串中各个字符的Unicode值。

      toString()方法。 Java的任何对象都有toString()方法,这是从Object对象继承而来的。因为对象是引用的(就是一个内存地址),而输出的是一个字符串,如果要在输出屏幕上正确的显示出一个对象,就必须先将对象转换成字符串,再将其输出,调用方法如前所述。若不对要输出的对象进行转换,输出的会是这个对象的16进制的内存地址。

      使用String类及相关的类如StringBuilder、StringBuffer,还有很多知识等待我们去掌握,这里只是简要介绍了下。只要坚持下去,那么我们会在以后的学习中慢慢掌握的。

Sunny


  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值