Java面向对象-String类

1,实例化String对象

有两种方式,我们直接看代码:

 1 package com.java1234.chap03.sec08;
 2  
 3 public class Demo1 {
 4  
 5     public static void main(String[] args) {
 6         // 实例化String的方式一
 7         String name1="张三";
 8         System.out.println("name1="+name1);
 9          
10         // 实例化String的方式二
11         String name2=new String("李四");
12         System.out.println("name2="+name2);
13     }
14 }

运行输出:

name1=张三

name2=李四

 

2,“==”VS“equals方法”

“==” 比较的是引用(是否指向同一个内存块)  “equals”比较的是具体内容

我们上下代码:

 1 package com.learn.chap03.sec06;
 2 
 3 public class Demo2 {
 4  
 5     public static void main(String[] args) {
 6         String name1="张三";  // 直接赋值方式
 7         String name2=new String("张三"); // new方式
 8         String name3=name2; // 传递引用
 9         String name4="张三";
10         String name5 = new String("张三");
11          
12         // ==比较的是引用
13         System.out.println("name1==name2:"+(name1==name2));
14         System.out.println("name1==name3:"+(name1==name3));
15         System.out.println("name2==name3:"+(name2==name3));
16         System.out.println("name1==name4:"+(name1==name4));
17         System.out.println("name5==name3:"+(name5==name3));
18          
19         // equals比较的是具体内容
20         System.out.println("name1.equals(name2):"+(name1.equals(name2)));
21         System.out.println("name1.equals(name3:"+(name1.equals(name3)));
22         System.out.println("name2.equals(name3):"+(name2.equals(name3)));
23         System.out.println("name1.equals(name4):"+(name1.equals(name4)));
24         System.out.println("name2.equals(name5):"+(name2.equals(name5)));
25     }
26 }

运行结果:

name1==name2:false
name1==name3:false
name2==name3:true
name1==name4:true
name5==name3:false
name1.equals(name2):true
name1.equals(name3:true
name2.equals(name3):true
name1.equals(name4):true
name2.equals(name5):true

 

我们给下内存提示:

 

3,String两种实例化方式的区别

直接赋值方式,创建的对象存放到字符串对象池里,假如存在的,就不会再创建;

new对象方式,每次都创建一个新的对象;

我们上一个示例:

 1 package com.java1234.chap03.sec08;
 2  
 3 public class Demo3 {
 4  
 5     public static void main(String[] args) {
 6         String name1="张三";
 7         String name2="张三";
 8         String name3=new String("张三");
 9         String name4=new String("张三");
10          
11         System.out.println("name1==name2:"+(name1==name2));
12         System.out.println("name1==name3:"+(name1==name3));
13         System.out.println("name3==name4:"+(name3==name4));
14     }
15      
16 }

运行输出:

name1==name2:true

name1==name3:false

name3==name4:false

我们给下内存示意图:

4,字符串的内容不可变性

字符串的特性:不能改变字符串的内容;

要想改变,只能通过指向一个新的内存地址;

我们给下代码:

 1 package com.java1234.chap03.sec08;
 2  
 3 public class Demo4 {
 4  
 5     public static void main(String[] args) {
 6         String name="张";
 7         name+="三";
 8         System.out.println(name);
 9     }
10 }

这里我们修改了name,本质的话name指向了一个新的内存区域,我们给下内存示意图:

 

String类常用方法及基本使用

 

我们首先来学习基本使用Jdk api chm文档:

我们这里推荐使用1.6 是中文的。下载地址:http://www.java1234.com/a/javaziliao/shuji/2013/0506/355.html

里面的方法主要是经常查并使用,熟练应用即可。

 

我们双击打开:

1.jpg

 

我们点击 左上角 显示:

2.jpg

 

输入String 搜索 然后我们会在右侧找到String类的描述,可以查到String类的所有信息 包括描述 方法 属性;

 

这里介绍一些String类的常用方法:

 

1, char chartAt(int index) 返回指定索引处的char值

这里的index 是从0开始的;

我们先上下实例:

 1 package com.java1234.chap03.sec08;
 2  
 3 public class Demo5 {
 4  
 5     public static void main(String[] args) {
 6         String name="张三";
 7         char ming=name.charAt(1);
 8         System.out.println(ming);
 9          
10         String str="我是中国人";
11         for(int i=0;i<str.length();i++){
12             System.out.println(str.charAt(i));
13         }
14     }
15 }

运行输出:

 

2,int length() 返回字符串的长度;

在前面一个例子里我们已经演示了;

 

3,int indexOf(int ch) 返回指定字符在此字符串中第一次出现处的索引。

 1 package com.java1234.chap03.sec08;
 2  
 3 public class Demo06 {
 4  
 5     public static void main(String[] args) {
 6         // indexOf方法使用实例
 7         String str="abcdefghijdklmoqprstuds";
 8         System.out.println("d在字符串str中第一次出现的索引位置:"+str.indexOf('d'));
 9         System.out.println("d在字符串str中第一次出现的索引位置,从索引4位置开始:"+str.indexOf('d',4));
10     }
11 }

 

4,String substring(int beginIndex)   返回一个新的字符串,它是此字符串的一个子字符串。

 1 package com.java1234.chap03.sec08;
 2  
 3 public class Demo07 {
 4  
 5     public static void main(String[] args) {
 6         // substring方式读取
 7         String str="不开心每一天";
 8         String str2="不开心每一天,不可能";
 9         String newStr=str.substring(1);
10         System.out.println(newStr);
11         String newStr2=str2.substring(1, 6);
12         System.out.println(newStr2);
13     }
14 }

 

5,public String toUpperCase()  String 中的所有字符都转换为大写

 

 1 package com.java1234.chap03.sec08;
 2  
 3 public class Demo08 {
 4  
 5     public static void main(String[] args) {
 6         String str="I'm a boy!";
 7         String upStr=str.toUpperCase(); // 转成大写
 8         System.out.println(upStr);
 9         String lowerStr=upStr.toLowerCase(); // 转成小写
10         System.out.println(lowerStr);
11     }
12 }

 

转载于:https://www.cnblogs.com/eaglezb/p/5970776.html

Java中的String是一个非常重要的,它代表了字符串型的数据。以下是关于JavaString的一些介绍和操作方法: 1. StringJava中的一个,用于表示字符串型的数据。 2. String的对象是不可变的,也就是说,一旦创建了一个String对象,就不能再修改它的值。 3. 可以使用双引号来创建一个String对象,例如:String str = "Hello World"。 4. String中有很多方法可以用来操作字符串,例如获取字符串长度、比较字符串、查找子字符串等等。 5. 获取字符串长度的方法是:str.length(),其中str是一个String对象。 6. 比较两个字符串是否相等的方法是:str1.equals(str2),其中str1和str2都是String对象。 7. 查找子字符串的方法是:str.indexOf(subStr),其中str是一个String对象,subStr是要查找的子字符串。 以下是一个Java程序示例,演示了如何使用String的一些方法: ```java public class StringDemo { public static void main(String[] args) { String str1 = "Hello"; String str2 = "World"; String str3 = "Hello"; // 获取字符串长度 System.out.println("Length of str1: " + str1.length()); // 比较字符串是否相等 System.out.println("str1 equals str2? " + str1.equals(str2)); System.out.println("str1 equals str3? " + str1.equals(str3)); // 查找子字符串 System.out.println("Index of 'llo' in str1: " + str1.indexOf("llo")); } } ``` 输出结果为: ``` Length of str1: 5 str1 equals str2? false str1 equals str3? true Index of 'llo' in str1: 2 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值