Java面向对象-String类
1,实例化String对象
有两种方式,我们直接看代码:
package com.java1234.chap03.sec08; public class Demo1 { public static void main(String[] args) {
// 实例化String的方式一
String name1="张三";
System.out.println("name1="+name1); // 实例化String的方式二
String name2=new String("李四");
System.out.println("name2="+name2);
}
}
运行输出:
name1=张三
name2=李四
2,“==”VS“equals方法”
“==” 比较的是引用(是否指向同一个内存块) “equals”比较的是具体内容
我们上下代码:
package com.learn.chap03.sec06; public class Demo2 { public static void main(String[] args) {
String name1="张三"; // 直接赋值方式
String name2=new String("张三"); // new方式
String name3=name2; // 传递引用
String name4="张三";
String name5 = new String("张三"); // ==比较的是引用
System.out.println("name1==name2:"+(name1==name2));
System.out.println("name1==name3:"+(name1==name3));
System.out.println("name2==name3:"+(name2==name3));
System.out.println("name1==name4:"+(name1==name4));
System.out.println("name5==name3:"+(name5==name3)); // equals比较的是具体内容
System.out.println("name1.equals(name2):"+(name1.equals(name2)));
System.out.println("name1.equals(name3:"+(name1.equals(name3)));
System.out.println("name2.equals(name3):"+(name2.equals(name3)));
System.out.println("name1.equals(name4):"+(name1.equals(name4)));
System.out.println("name2.equals(name5):"+(name2.equals(name5)));
}
}
运行结果:
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对象方式,每次都创建一个新的对象;
我们上一个示例:
package com.java1234.chap03.sec08; public class Demo3 { public static void main(String[] args) {
String name1="张三";
String name2="张三";
String name3=new String("张三");
String name4=new String("张三"); System.out.println("name1==name2:"+(name1==name2));
System.out.println("name1==name3:"+(name1==name3));
System.out.println("name3==name4:"+(name3==name4));
} }
运行输出:
name1==name2:true
name1==name3:false
name3==name4:false
我们给下内存示意图:
4,字符串的内容不可变性
字符串的特性:不能改变字符串的内容;
要想改变,只能通过指向一个新的内存地址;
我们给下代码:
package com.java1234.chap03.sec08; public class Demo4 { public static void main(String[] args) {
String name="张";
name+="三";
System.out.println(name);
}
}
这里我们修改了name,本质的话name指向了一个新的内存区域,我们给下内存示意图:
String类常用方法及基本使用
我们首先来学习基本使用Jdk api chm文档:
我们这里推荐使用1.6 是中文的。下载地址:http://www.java1234.com/a/javaziliao/shuji/2013/0506/355.html
里面的方法主要是经常查并使用,熟练应用即可。
我们双击打开:
我们点击 左上角 显示:
输入String 搜索 然后我们会在右侧找到String类的描述,可以查到String类的所有信息 包括描述 方法 属性;
这里介绍一些String类的常用方法:
1, char chartAt(int index) 返回指定索引处的char值
这里的index 是从0开始的;
我们先上下实例:
package com.java1234.chap03.sec08; public class Demo5 { public static void main(String[] args) {
String name="张三";
char ming=name.charAt(1);
System.out.println(ming); String str="我是中国人";
for(int i=0;i<str.length();i++){
System.out.println(str.charAt(i));
}
}
}
运行输出:
三
我
是
中
国
人
2,int length() 返回字符串的长度;
在前面一个例子里我们已经演示了;
3,int indexOf(int ch) 返回指定字符在此字符串中第一次出现处的索引。
package com.java1234.chap03.sec08; public class Demo06 { public static void main(String[] args) {
// indexOf方法使用实例
String str="abcdefghijdklmoqprstuds";
System.out.println("d在字符串str中第一次出现的索引位置:"+str.indexOf('d'));
System.out.println("d在字符串str中第一次出现的索引位置,从索引4位置开始:"+str.indexOf('d',4));
}
}
4,String substring(int beginIndex) 返回一个新的字符串,它是此字符串的一个子字符串。
package com.java1234.chap03.sec08; public class Demo07 { public static void main(String[] args) {
// substring方式读取
String str="不开心每一天";
String str2="不开心每一天,不可能";
String newStr=str.substring(1);
System.out.println(newStr);
String newStr2=str2.substring(1, 6);
System.out.println(newStr2);
}
}
5,public String toUpperCase() String 中的所有字符都转换为大写
package com.java1234.chap03.sec08; public class Demo08 { public static void main(String[] args) {
String str="I'm a boy!";
String upStr=str.toUpperCase(); // 转成大写
System.out.println(upStr);
String lowerStr=upStr.toLowerCase(); // 转成小写
System.out.println(lowerStr);
}
}
Java面向对象-String类的更多相关文章
- java 面向对象String类
1.String类:String 是不可变字符序列 1) char charAt(int index)返回字符串中第 index 个字符. 2) boolean equalsIgnoreCase(St ...
- Java面向对象 String 基本数据类型对象包装类
Java面向对象 String 知识概要: (1)String的用法详解 (2)基本数据类型对象包装类 String 顾名思义,该类主要是对字符串 ...
- Java面向对象 Object类 内部类
Java面向对象 Object类 内部类 知识概要: 一:Object类 二:内部类 匿名内部类的写法 1.Object O ...
- Java中String类的方法及说明
String : 字符串类型 一. String sc_sub = new String(c,3,2); // String sb_copy = new String(sb) ...
- java.lang.String 类的所有方法
java.lang.String 类的所有方法 方法摘要 char charAt(int index) 返回指定索引处的 char 值. int codePointAt(int index) 返回指定 ...
- java中String类学习
java中String类的相关操作如下: (1)初始化:例如,String s = “abc”; (2)length:返回字符串的长度. (3)charAT:字符操作,按照索引值获得字符串中的指定字符 ...
- 深入分析Java的String类的方法与特点
字符串是任何编程语言都必须支持的变量类型,有些编程语言是直接提供了原生的变量类型,有些编程语言则使用语法特性以 SDK 的形式提供支持.在Java编程平台中,对字符串的支持使用了后者的形式,就是通过在 ...
- java 中String类的常用方法总结,带你玩转String类。
String类: String类在java.lang包中,java使用String类创建一个字符串变量,字符串变量属于对象.String类对象创建后不能修改,StringBuffer & St ...
- 在java中String类为什么要设计成final
在java中String类为什么要设计成final? - 胖胖的回答 - 知乎 https://www.zhihu.com/question/31345592/answer/114126087
随机推荐
- shell编程实例1
1.vim hello.sh 2. #!bin/bash echo "hello world!" 3.chmod +x hello.sh 4.source hello.sh ls ...
- LeetCode OJ:Three Sum(三数之和)
Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? Find all un ...
- linux文件组、权限等
文件所有者.所在组合其他组 --改变用户所在组 组和在oa系统中的组差不多,用户代表的好像是个体,组有点像角色的意思.不过权限的话并不是个体从组中获得,组仅仅是一个机制,进行部分文件控制与共享 ...
- dateTimePicker编辑状态下,取值不正确的问题
当对dateTimePicker进行编辑,回车,调用函数处理dateTimePicker的value值时,其取值结果是你编辑之前的值,而不是你编辑后的值,虽然dateTimePicker.text的值 ...
- 探索Javascript 异步编程
在我们日常编码中,需要异步的场景很多,比如读取文件内容.获取远程数据.发送数据到服务端等.因为浏览器环境里Javascript是单线程的,所以异步编程在前端领域尤为重要. 异步的概念 所谓异步,是指当 ...
- Qt5学习笔记——QRadioButton与QbuttonGroup
[我是小标题:使用QToolButton实现radio button功能.] QRadioButton是什么? 下图是Windows系统中典型的radio button显示效果. QRadio ...
- C#调用EasyPusher推送到EasyDarwin实现视频流中转
本文转自:http://www.cnblogs.com/kangkey/p/6772863.html 最近在公司项目中,遇到需要将内网的监控视频信息,在外网进行查看,最终通过查阅资料,发现EasyDa ...
- 阿里云,腾讯云,等等的云 Ubuntu14.04升级16.04
16.04有很多好处.在此不说了 这几天来回折腾了各种的云,然后发现国内的都没有16.04 但是ubuntu可以直接在线升级 在此记下来升级的过程 不管是腾讯云也好 阿里云也好,或者别的什么云,只要是 ...
- FZU Problem 2129 子序列个数
看了 dp 方程之后应该是妙懂 每次 加入一个数,×2 然后剪掉重复的: 重复的个数 维前面那个数,,,,, #include<iostream> #include<stdio.h ...
- linux之使用samba实现文件共享
早期网络想要在不同主机之间共享文件大多要用FTP协议来传输,但FTP协议仅能做到传输文件却不能直接修改对方主机的资料数据,这样确实不太方便,于是便出现了NFS开源文件共享程序,NFS是一个能够将多台L ...