java-String字符串类
2017-12-02 22:32
441 查看
/*
笔试题目:new String(“abc”)创建了几个对象?
两个对象, 一个对象是 位于字符串常量池中,一个对象是位于堆内存中。
*/
public class Demo1 {
}
/*
str1==str2?true
str2==str3?false
str3==str4?false
str3.equals(str2)?true
回答错误
*/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
实例2
/*
String 的构造方法:
记住: 使用字节数组或者字符数组都可以构建一个字符串对象。
*/
public class Demo6 {
}
/*
abc
bc
圣诞
ABC
字符串的内容:abc
*/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
实例3:
/*
2.2 获取方法
int length() 获取字符串的长度
char charAt(int index) 获取特定位置的字符 (角标越界)
int indexOf(String str) 查找子串第一次出现的索引值,如果子串没有出现 在字符串中,那么则返回-1表示。
int lastIndexOf(String str) 查找子串最后一次出现的索引值 , 如果子串没有出现 在字符串中,那么则返回-1表示
*/
public class Demo3 {
}
/*
字符串的字符 个数: 9
根据索引值获取对应 的字符:中
查找子串第一次出现的索引值:3
查找子串最后一次出现的索引值:7
*/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
实例3:
import java.util.Arrays;
/*
2.3 判断方法
boolean endsWith(String str) 是否以指定字符结束
boolean isEmpty()是否长度为0 如:“” null V1.6
boolean contains(CharSequences) 是否包含指定序列 应用:搜索
boolean equals(Object anObject) 是否相等
boolean equalsIgnoreCase(String anotherString) 忽略大小写是否相等
2.4 转换方法
char[] toCharArray() 将字符串转换为字符数组
byte[] getBytes();
字节数组与字符数组、字符串他们三者之间是可以互相转换。
*/
public class Demo4 {
}
/*
是否以指定 的字符串结束:false
判断字符串是否为空内容:false
判断字符串是否包含指定的内容:true
判断两个 字符串的内容是否一致:false
判断两个字符串的内容是否一致(忽略大小写比较):true
字符数组:[D, e, m, o, ., j, a, v, a]
字节数组:[68, 101, 109, 111, 46, 106, 97, 118, 97]
*/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
实例4
import java.util.Arrays;
/*
其他方法
String replace(String oldChar, String newChar) 替换
String[] split(String regex) 切割
*/
public class Demo5 {
}
/*
指定新内容替换旧 的内容:今天晚上要好好考试
字符串数组的内容:[大家, 下, 午, 好]
指定开始的索引值截取子串:传智播客
指定开始的索引值截取子串:传智播客
转大写:ABC中国
转小写:abdfsdd
去除字符串首尾的空格:大家最近 都非常努力
*/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
实例5:
/*
需求1:自己实现trim的方法。
需求2: 获取上传文件名 “D:\20120512\day12\Demo1.java”。
需求3: 将字符串对象中存储的字符反序。 新中国好 —–> 好国中新
需求4: 求一个子串在整串中出现的次数 。
*/
public class Demo6 {
// 需求1:自己实现trim的方法。
public static String myTrim(String str){
//先转换成字符 数组
char[] arr = str.toCharArray();
//定义两个 变量记录开始与结束 的索引值
int startIndex = 0 ;
int endIndex = arr.length -1;
//确定开始 的索引值
while(true){
if(arr[startIndex]==’ ‘){
startIndex++;
}else{
break;
}
}
//确定结束 的索引值:
while(true){
if(arr[endIndex]==’ ‘){
endIndex–;
}else{
break;
}
}
//截取子串返回
return str.substring(startIndex,endIndex+1);
}
}
/*
传智 播客
文件名:Demo1.java
翻转后的字符串:好国中新
出现的次数:3
*/
笔试题目:new String(“abc”)创建了几个对象?
两个对象, 一个对象是 位于字符串常量池中,一个对象是位于堆内存中。
*/
public class Demo1 {
public static void main(String[] args) { String str1 = "hello"; String str2 = "hello"; String str3 = new String("hello"); String str4 = new String("hello"); System.out.println("str1==str2?"+(str1==str2)); // true System.out.println("str2==str3?"+(str2==str3)); //false System.out.println("str3==str4?"+(str3==str4)); // false System.out.println("str3.equals(str2)?"+(str3.equals(str4))); //true //是String类重写了Object的equals方法,比较的是两个字符串对象 的内容 是否一致。 // "=="用于比较 引用数据类型数据的时候比较的是两个对象 的内存地址,equals方法默认情况下比较也是两个对象 的内存地址。 test(null); } public static void test(String str){ if("中国".equals(str)) { System.out.println("回答正确"); }else{ System.out.println("回答错误"); } }
}
/*
str1==str2?true
str2==str3?false
str3==str4?false
str3.equals(str2)?true
回答错误
*/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
实例2
/*
String 的构造方法:
String() 创建一个空内容 的字符串对象。 String(byte[] bytes) 使用一个字节数组构建一个字符串对象 String(byte[] bytes, int offset, int length) bytes : 要解码的数组 offset: 指定从数组中那个索引值开始解码。 length: 要解码多个元素。 String(char[] value) 使用一个字符数组构建一个字符串。 String(char[] value, int offset, int count) 使用一个字符数组构建一个字符串, 指定开始的索引值,与使用字符个数。 String(int[] codePoints,int offset,int count) String(String original)
记住: 使用字节数组或者字符数组都可以构建一个字符串对象。
*/
public class Demo6 {
public static void main(String[] args) { String str = new String(); byte[] buf = {97,98,99}; str = new String(buf); //使用一个字节数组构建一个字符串对象 System.out.println(str); str = new String(buf,1,2); //使用一个字节数组构建一个字符串对象, //指定开始解码 的索引值和解码的个数。 System.out.println(str); char[] arr = {'明','天','是','圣','诞'}; str = new String(arr); //使用字符数组构建一个字符串 str = new String(arr,3,2); System.out.println(str); int[] buf2 = {65,66,67}; str = new String(buf2,0,3); System.out.println(str); str = new String("abc"); System.out.println("字符串的内容:"+str); }
}
/*
abc
bc
圣诞
ABC
字符串的内容:abc
*/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
实例3:
/*
2.2 获取方法
int length() 获取字符串的长度
char charAt(int index) 获取特定位置的字符 (角标越界)
int indexOf(String str) 查找子串第一次出现的索引值,如果子串没有出现 在字符串中,那么则返回-1表示。
int lastIndexOf(String str) 查找子串最后一次出现的索引值 , 如果子串没有出现 在字符串中,那么则返回-1表示
*/
public class Demo3 {
public static void main(String[] args) { String str = "abc中国ab中国"; System.out.println("字符串的字符 个数: " + str.length() ); System.out.println("根据索引值获取对应 的字符:"+ str.charAt(3)); System.out.println("查找子串第一次出现的索引值:" + str.indexOf("中国")); System.out.println("查找子串最后一次出现的索引值:" + str.lastIndexOf("中国")); }
}
/*
字符串的字符 个数: 9
根据索引值获取对应 的字符:中
查找子串第一次出现的索引值:3
查找子串最后一次出现的索引值:7
*/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
实例3:
import java.util.Arrays;
/*
2.3 判断方法
boolean endsWith(String str) 是否以指定字符结束
boolean isEmpty()是否长度为0 如:“” null V1.6
boolean contains(CharSequences) 是否包含指定序列 应用:搜索
boolean equals(Object anObject) 是否相等
boolean equalsIgnoreCase(String anotherString) 忽略大小写是否相等
2.4 转换方法
char[] toCharArray() 将字符串转换为字符数组
byte[] getBytes();
字节数组与字符数组、字符串他们三者之间是可以互相转换。
*/
public class Demo4 {
public static void main(String[] args) { String str = "Demo.java"; System.out.println("是否以指定 的字符串结束:"+ str.endsWith("ja")); //str = ""; System.out.println("判断字符串是否为空内容:"+str.isEmpty()); System.out.println("判断字符串是否包含指定的内容:"+ str.contains("Demo")); System.out.println("判断两个 字符串的内容是否一致:"+ "DEMO.JAVA".equals(str)); System.out.println("判断两个字符串的内容是否一致(忽略大小写比较):"+ "DEMO.JAVA".equalsIgnoreCase(str)); //转换的方法 char[] buf = str.toCharArray(); //把字符串转换字符数组 System.out.println("字符数组:"+ Arrays.toString(buf)); byte[] buf2 = str.getBytes(); //把字符串转字节数组 System.out.println("字节数组:"+ Arrays.toString(buf2)); }
}
/*
是否以指定 的字符串结束:false
判断字符串是否为空内容:false
判断字符串是否包含指定的内容:true
判断两个 字符串的内容是否一致:false
判断两个字符串的内容是否一致(忽略大小写比较):true
字符数组:[D, e, m, o, ., j, a, v, a]
字节数组:[68, 101, 109, 111, 46, 106, 97, 118, 97]
*/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
实例4
import java.util.Arrays;
/*
其他方法
String replace(String oldChar, String newChar) 替换
String[] split(String regex) 切割
String substring(int beginIndex) 指定开始 的索引值截取子串 String substring(int beginIndex, int endIndex)指定开始 与结束的索引值截取子串 String toUpperCase() 转大写 String toLowerCase() 转小写 String trim() 去除字符串首尾的空格
*/
public class Demo5 {
public static void main(String[] args) { String str = "今天晚上不考试"; System.out.println("指定新内容替换旧 的内容:"+ str.replace("不", "要好好")); str = "大家-下-午-好"; String[] arr = str.split("-"); //根据指定的字符进行切割 。 System.out.println("字符串数组的内容:"+ Arrays.toString(arr)); str = "广州传智播客"; System.out.println("指定开始的索引值截取子串:"+ str.substring(2)); System.out.println("指定开始的索引值截取子串:"+ str.substring(2,6)); //包头不包尾 注意:截取的内容是包括开始的索引值,不包括结束的索引值, 截取的位置是结束的索引值-1. str = "abC中国"; System.out.println("转大写:" + str.toUpperCase()); str = "AbdfSDD"; System.out.println("转小写:"+ str.toLowerCase()); str = " 大家最近 都非常努力 "; System.out.println("去除字符串首尾的空格:"+ str.trim()); }
}
/*
指定新内容替换旧 的内容:今天晚上要好好考试
字符串数组的内容:[大家, 下, 午, 好]
指定开始的索引值截取子串:传智播客
指定开始的索引值截取子串:传智播客
转大写:ABC中国
转小写:abdfsdd
去除字符串首尾的空格:大家最近 都非常努力
*/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
实例5:
/*
需求1:自己实现trim的方法。
需求2: 获取上传文件名 “D:\20120512\day12\Demo1.java”。
需求3: 将字符串对象中存储的字符反序。 新中国好 —–> 好国中新
需求4: 求一个子串在整串中出现的次数 。
*/
public class Demo6 {
public static void main(String[] args) { String str =" 传智 播客 "; System.out.println(myTrim(str)); str = "D:\\20120512\\day12\\Demo1.java"; getFileName(str); str = "新中国好"; System.out.println("翻转后的字符串:"+ reverse(str)); str = "abcjavaabcjavaphpjava"; //java getCount(str, "java"); } //统计子串出现 的次数 public static void getCount(String str,String target){ int count = 0 ; //用于记录出现的次数 int fromIndex = 0; // 记录从那个索引值开始寻找目标子串 while((fromIndex = str.indexOf(target, fromIndex))!=-1){ //如果indexof方法返回 的不是-1,那么就是已经找到了目标 元素。 count++; fromIndex = fromIndex+target.length(); } System.out.println("出现的次数:"+ count); } public static String reverse(String str){ char[] arr = str.toCharArray(); for(int startIndex = 0 , endIndex=arr.length-1 ; startIndex<endIndex; startIndex++,endIndex--){ char temp = arr[startIndex]; arr[startIndex] = arr[endIndex]; arr[endIndex] = temp; } //使用字符数组构建一个字符串。 return new String(arr); } //需求2: 获取上传文件名 "D:\\20120512\\day12\\Demo1.java"。 public static void getFileName(String path){ int index = path.lastIndexOf("\\"); String fileName = path.substring(index+1); System.out.println("文件名:"+ fileName); }
// 需求1:自己实现trim的方法。
public static String myTrim(String str){
//先转换成字符 数组
char[] arr = str.toCharArray();
//定义两个 变量记录开始与结束 的索引值
int startIndex = 0 ;
int endIndex = arr.length -1;
//确定开始 的索引值
while(true){
if(arr[startIndex]==’ ‘){
startIndex++;
}else{
break;
}
}
//确定结束 的索引值:
while(true){
if(arr[endIndex]==’ ‘){
endIndex–;
}else{
break;
}
}
//截取子串返回
return str.substring(startIndex,endIndex+1);
}
}
/*
传智 播客
文件名:Demo1.java
翻转后的字符串:好国中新
出现的次数:3
*/
相关文章推荐
- java String字符串类的两种实例化方法
- Java学习笔记37. 字符串类(String)的比较方法
- Java高级技术第三章——Java的String字符串类实现原理
- Java学习之字符串类String(一)
- [学习笔记]Java字符串类String
- Java基础——字符串类String
- Java 中的字符串类String、StringBuffer、StringBuilder的区别
- Java:字符串类String的功能介绍
- 第十五讲 Java异常机制、自定义异常、断言调试技术、JDK8主要新特性介绍、String字符串类
- java.lang.String字符串类
- Java String 字符串类细节探秘
- 黑马程序员-java学习之String字符串类
- java的String字符串类详解
- Java 中的字符串类String、StringBuffer、StringBuilder的区别
- Java探索之旅(13)——字符串类String
- java字符串类(String,StringBuffer,StringBuilder)
- Java探索之旅(13)——字符串类String
- JAVA中的字符串类String,StringBuffer类和数据封装类
- Java 中的字符串类String、StringBuffer、StringBuilder
- Java中String字符串类的解析