小白学Java 第16课:字符串

【相关链接】

上一篇:小白学Java 第15课:方法介绍与调用

下一篇:小白学Java 第17课:数组

总纲:返回列表

 

【1】前言

在以前的课时中,我们学习过8大基本数据类型,他们用来存储和表示各种对应类型的数据,但有一种数据类型,是我们之前还无法表示的,那就是字符串。

比如“小白学Java”这几个字连在一起的字符串,我们该用什么类型去存储它,表示它呢?

那么这里,我们就要用到字符串类型String了。字符串String类型,他就是一个万能型选手,除了可以表示字符串,他甚至还可以和大多数的数据类型相互间进行转换。

因此它算是整个Java语言中,使用得最为频繁的数据类型了,所以今天这一课时也是非常重要的,大家要注意理解哈。

【2】定义

字符串定义有如下两种,比如我们用一个变量s去表示“小白学Java”这个字符串,那么可以定义为:

第一种:通过构造方法形式(如下)

String s = new String("小白学Java");

第二种:直接赋值(这也是我们最常用的定义方式)

String s = "小白学Java";

运行程序可以看到,两种输出结果是一样的:

【3】字符串相加

除了数字类型外,字符串也是可以直接进行相加,他的结果就是将相加的字符串拼接,先加拼接在前,后加的就拼接在尾。

比如:下面我们定义了3个字符串,然后依次进行相加,最后打印结果

String s1 = "ABCD";
String s2 = "EFGH";
String s3 = "6666";
String s4 = s1 + s2 + s3;
System.out.println(s4);

可以看到最后的结果就是:ABCDEFGH6666

现在我们将s2和s3顺序变化一下,那么他的结果自然也就成为了:ABCDEFGH6666

【4】常用的字符串方法(重要)

在上一节课中,我们学习了方法,那么我们学习字符串,其实就是学习字符串的一系列的方法,以后在逻辑业务中处理字符串,其实就是调相对的一些字符串处理方法,下面我列举一些字符串最常用的一些方法,大家务必要慢慢熟练。

下面我以如下字符串进行讲解说明:

String s = "小白学Java,坚持就是胜利,一起加油 so easy !";

String是一个类,s是类的变量(也称之为实例),实例调用类的方法,只需要.方法名即可,如 int a = s.length() 就可以求得字符串s的长度,并将结果赋值给整数类型a。

(4.1)求字符串的长度:.length() 

所谓求长度,就是这个字符串有多长?有多少个字符?1个汉字,1个符号,1个英文字母,都算1个字符,很显然长度是一个整数类型,于是我们可以用一个 int 类型去接收结果。

String s = "小白学Java,坚持就是胜利,一起加油 so easy !";
int length = s.length();
System.out.println("字符串长度为:" + length);

运行结果:

比如很多网址,用户在输入密码帐号的时候,我们通常会对输入的字符串进行长度验证;

(4.2)替换字符中的字符或字符串:.replace("被替换的","替换的")

比如,我们要将字符串中的逗号,全部替换为句号,字符串替换后仍为一个字符串,所以我们同样用一个String类型去接收。

String s = "小白学Java,坚持就是胜利,一起加油 so easy !";
String result = s.replace(",", "。");
System.out.println("替换后:" + result);	

运行结果:

除了替换字符,还可以替换字符串,比如我们将“小白”替换为“大黑”,则可以为:

String s = "小白学Java,坚持就是胜利,一起加油 so easy !";
String result = s.replace("小白", "大黑");
System.out.println("替换后:" + result);	

(4.3)裁剪:substring()

裁剪开头:比如我们将字符串前面10个字符去掉;

String result = s.substring(10);

裁剪中间:如果你想从中间裁剪,比如我要裁掉5-20位置的字符串,那么在方法里面把第1个参数写5,第2个参数写20。

String result = s.substring(5,20);

裁掉尾巴:如果你想裁掉尾巴上的多少个字符,该怎么做呢?比如我要裁掉尾巴上的10个字符,这个并没有直接的方法,需要我们换个思路。

思路:首先我们可以通过.length()方法求得字符串的长度,然后长度减去10的位置,最后调用substring(0,位置)解决。

具体如下:

int len = s.length();
String result = s.substring(0, len - 10);

(4.4)小写转大写:toUpperCase()

String result = s.toUpperCase();

(4.5)大写转小写:toLowerCase()

String result = s.toLowerCase();

(4.6) 去掉字符串前后的空格:s.trim()

String s = "      小白学Java,坚持就是胜利,一起加油 so easy !        ";
System.out.println("去掉前:" + s);
System.out.println("去掉前长度:" + s.length());
String s1 = s.trim();
System.out.println("去掉后:" + s1);
System.out.println("去掉后长度:" + s1.length());

比如在用户网站注册帐号的时候,我们需要对用户的帐号和密码,进行前后空格进行处理。

(4.7)找到字符串中某字符的第一次出现位置:indexOf()

如:求第一个坚持所在的位置是第多少个字符开始的?

String s = "小白学Java,坚持就是胜利,一起加油 so easy ";
int idx = s.indexOf("坚持");
System.out.println("第一个坚持的位置:" + idx);

(4.8)字符串比较: equals()

在前面的数值基本数据类型中,判断他们相等可以直接用等号进行判断,比如a=1,b=1, 要判断a和b是否相等直接可以 boolean c = (a == b); 如果c为true,则两则相等,如果为false,则两者不相等。

但字符串进行相等比较,不能进行这样用等号比较,他们需要用equals方法进行比较。

String s1 = "ABC";
String s2 = "Abc";
String s3 = "ABC";
boolean b1 = s1.equals(s2);
boolean b2 = s1.equals(s3);
System.out.println("s1和s2是否相等:" + b1);
System.out.println("s1和s3是否相等:" + b2);

(4.9)判断字符串是否以某个字符串开始:startsWith()

如果返回为true,则表示是以这个字符串开始,如果为false,则表示不是以这个字符串开始的。

String s = "小白学Java,坚持就是胜利,一起加油 so easy ";
boolean b1 = s.startsWith("小白学Java");
boolean b2 = s.startsWith("小白Java");
System.out.println(b1);
System.out.println(b2);

(4.10)判断字符串是否以某个字符串结束:endsWith

如果返回为true,则表示是以这个字符串为结尾,如果为false,则表示不是以这个字符串结尾的。

String s = "小白学Java,坚持就是胜利,一起加油 so easy !";
boolean b1 = s.endsWith("so easy !");
boolean b2 = s.endsWith("xxxx");
System.out.println(b1);
System.out.println(b2);

(4.11)判断字符串是否包含某个字符或者字符串:contains

String s = "小白学Java,坚持就是胜利,一起加油 so easy !";
boolean b1 = s.contains("Java");
boolean b2 = s.contains("C++");
System.out.println(b1);
System.out.println(b2);

这里我就列举了这些,更多的可以打开代码提示(Alt + /)自行查看,英文好同学可以看懂他的意思,英文不好的同学,可以自己试结果,每个提示的方法后面的冒号后就是返回值(红圈部分),同学们可以自己定义一个同类型的数据类型去接收,然后输出看看做比较。

【5】附表

最后附上一张我这边整理的字符串常用方法表,大家可以先看看,有的返回类型是数组类型,看不懂的可以先了解即可,后面学习了其他知识点,再回顾来看就会豁然开朗了。

 

【相关链接】

上一篇:小白学Java 第15课:方法介绍与调用

下一篇:小白学Java 第17课:数组

总纲:返回列表

 

 

相关推荐
©️2020 CSDN 皮肤主题: Age of Ai 设计师:meimeiellie 返回首页