三:String类。
String类是public final classString extendsObjectimplementsSerializable
Comparable<String>,CharSequence 是不可被继承类。字符串类一旦被创建之后,不可以被更改。(Strings are constant; their values cannot be changed after they are created. String buffers support mutable strings.)
赋值不需要new。
1 String str = "abc";
初始化字符串:
1 String()
2 String(byte[] bytes)
3 String(byte[] bytes, Charset charset)
4 String(byte[] ascii, int hibyte)
代码:
1 public class String_Test {
2 public static void main(String ...args){
3 In_Str s=new In_Str();
4 s.Pri();
5 }
6 }
7
8 class In_Str{
9 private String s_a= new String();
10 byte[] s_b=new byte[]{1,2,3,4};
11 byte[] s_c={1,3,4,5};
12 String S_d=new String(s_b);
13 char[] ch_s=new char[]{'a','b','c'};
14 String ch_str=new String(ch_s);
15 public void Pri(){
16 System.out.printf(this.S_d);
17 String s_g=new String(new byte[]{1,2,3,4});
18 System.out.printf(s_g);
19 System.out.printf(ch_str);
20 }
21 }
之前学习python的时候,我们常用的String方法比如说 分片、切割、获取索引等等。
类似分片:
substring方法:
返回值为String类型,参数为int 为字符串的切割起始,可以是单个参数也可以是2个参数,一个默认为到最后。和python切片一样。
1 package test02;
2
3 public class String_Test {
4 public static void main(String ...args){
5 Sub s=new Sub();
6 s.sub();
7 }
8 }
9
10
11 class Sub{
12 String sub="owner";
13 public void sub(){
14 System.out.printf(sub.substring(1)+"\n");
15 System.out.printf(sub.substring(1,2));
16
17
18 }
19 }
以什么字符串开头和结尾,返回值为布尔类型:
bool startWith(String) bool endWith(String)
1 package test02;
2
3 public class String_Test {
4 public static void main(String ...args){
5 In_Str s=new In_Str();
6 s.Pri();
7 }
8 }
9
10 class In_Str{
11 private String s_a= new String();
12 byte[] s_b=new byte[]{1,2,3,4};
13 byte[] s_c={1,3,4,5};
14 String S_d=new String(s_b);
15 char[] ch_s=new char[]{'a','b','c'};
16 String ch_str=new String(ch_s);
17 public void Pri(){
18 if(ch_str.startsWith("a")){
19 System.out.printf("ok");
20 }else if (ch_str.endsWith("f")){
21 System.out.printf("not end f\n");
22 };
23 }
24 }
判断字符串是否包含以及所在字符串的索引:
bool contains(String str) int str.indexof(substr) 判断包含,则返回相应的索引,不包含的返回-1,返回是第一次匹配的索引。
1 package test02;
2
3 public class String_Test {
4 public static void main(String ...args){
5 In_Str s=new In_Str();
6 s.Pri();
7 }
8 }
9
10 class In_Str{
11 char[] ch_s=new char[]{'a','b','c','d','f'};
12 String ch_str=new String(ch_s);
13 public void Pri(){
14 if(ch_str.contains("ab")){
15 System.out.printf("contains\n");
16 int ind=ch_str.indexOf("ab");
17 int ind1=ch_str.indexOf("dd");
18 System.out.printf(ind+"\n");
19 System.out.print(ind1);
20 }
21 }
22 }
存在就返回相应的索引,否则返回-1。
image获取字符串和字节数组:char[] toCharArray(string) byte[] getBytes()
1 package test02;
2
3 public class String_Test {
4 public static void main(String ...args){
5 In_Str s=new In_Str();
6 s.Pri();
7 }
8 }
9
10 class In_Str{
11 char[] ch_s=new char[]{'a','b','c','d','f'};
12 String ch_str=new String(ch_s);
13 public void Pri(){
14 char[] s_ch=ch_str.toCharArray();
15 byte[] s_ch_1=ch_str.getBytes();
16 for(char i:s_ch){
17 System.out.print(i+"\n");
18 }
19 System.out.print(s_ch_1);
20 }
21 }
判断两个字符串是否相等,因为String类中已经重写对应的equals方法,所以判断2个字符串对象是否相等使用equeals()以及忽略大小写比较2个字符串是否一样。equalsIgnoreCase()
image image 1 package test02;
2
3 public class String_Test {
4 public static void main(String ...args){
5 In_Str s=new In_Str();
6 s.Pri();
7 }
8 }
9
10 class In_Str{
11 char[] ch_s=new char[]{'a','b','c','d','f'};
12 char[] ch_s_1=new char[]{'A','b','c','D','f'};
13 String ch_str=new String(ch_s);
14 String ch_str_2=new String(ch_s);
15 String ch_str_1=new String(ch_s_1);
16 public void Pri(){
17 if(ch_str.equalsIgnoreCase(ch_str_1)){
18 System.out.printf("相等!");
19 }
20 if(ch_str.equals(ch_str_2)){
21 System.out.printf("相等!");
22 }
23 }
24 }
判断字符串是否为空:bool isEmpty()
1 package test02;
2
3 public class String_Test {
4 public static void main(String ...args){
5 In_Str s=new In_Str();
6 s.Pri();
7 }
8 }
9
10 class In_Str{
11 String ch_str=new String();
12 public void Pri(){
13 if(this.ch_str.isEmpty()){
14 System.out.printf("is empty");
15 }
16 }
17 }
获取指定位置的字符: char charAt(int index) 去掉字符串的首尾的空格和回车 str.trim()
1 package test02;
2
3 public class String_Test {
4 public static void main(String ...args){
5 In_Str s=new In_Str();
6 s.Pri();
7 }
8 }
9
10 class In_Str{
11 String str=new String("chi ckck \n");
12 public void Pri(){
13 System.out.print(str.trim()+'\n');
14 System.out.print(str.charAt(2));
15 }
16 }
字符串的大小写转换:toUpperCase(str) toLowerCase()
1 package test02;
2
3 public class String_Test {
4 public static void main(String ...args){
5 In_Str s=new In_Str();
6 s.Pri();
7 }
8 }
9
10 class In_Str{
11 String str=new String("cHi ckck \n");
12 public void Pri(){
13 System.out.printf(str.toUpperCase());//大写转换。
14 System.out.printf(str.toLowerCase());//小写转换.
15 }
16 }
将给定新旧的字符转换成新的字符 replace(old char,new char)
1 package test02;
2
3 public class String_Test {
4 public static void main(String ...args){
5 In_Str s=new In_Str();
6 s.Pri();
7 }
8 }
9
10 class In_Str{
11 String str=new String("cHi ckck \n");
12 public void Pri(){
13 System.out.printf(str.replace('H','p'));
14 }
15 }
将给定的旧的字符串转换成新的字符串 replace(old str,new str)
1 package test02;
2
3 public class String_Test {
4 public static void main(String ...args){
5 In_Str s=new In_Str();
6 s.Pri();
7 }
8 }
9
10 class In_Str{
11 String str=new String("cHi ckck \n");
12 public void Pri(){
13 System.out.printf(str.replace("Hi","koo"));
14 }
15 }
网友评论