Java记录4--string
1.toString所有的类都默认自动继承了Objiect类
2.Object类中的toString方法返回的时类的名字和该哈希表码组成的一个字符串,
System.out.println(类对象名)实际输出的是该对象的toString方法所返回的字符串
3.所有类都从Object类继承了equals方法,源码如下
public boolean equals(Object obj)
{ return this == obj;}
4.object中的equals方法是直接判断调用equals的对象和形参obj所引用的对象是否为同一对象,即是否是内存中同一块存储单元,如果this和obj指向同一块内存对象,返回true,否则返回false,即使是内容完全相等的两块不同的内存对象,也会返回false
5.如果希望不同内存但相同内容的两个对象equals时返回true,则我们需要重写父类的equals方法
6.string类已经重写了object中的equals方法,可以用来判断两个对象的内容是否相等
- public class A
- {
- public static void main(String [] args)
- { //s1 s2 存放在堆区
- String s1 = new String ("china");
- String s2 = new String ("china");
- System.out.println(s1.equals(s2));//true
- System.out.println(s1 ==s2 );//false
- //s3 s4的china存放在数据区
- String s3 = "china";
- String s4 = "china";
- System.out.println(s3.equals(s4));//true
- System.out.println(s3 ==s4 ); //true
- }
- }
7,String常用方法总结
1.public char charAt (int index)
返回字符串中第index字符
2.public int length()
返回字符串的长度
3.public int indexOf (String str)
返回字符串中出现str的第一个位置
4.public int indexOf (String str , int fromIndex)
返回字符串中从fromIndex从from开始出现str的第一个位置
5.public boolean equalsIgnoreCase (String another)
比较字符串与another 是否一样(忽略大小写)
6.public String replace(char oldChar , char newChar)
在字符串中用new字符串 替代old字符串
7.public boolean startsWith (String prefix)
判断字符串是否已prefix字符串开头
8.public boolean endsWith(String suffix)
判断是否以suffix结尾
9.public String toUpperCase()
返回一个字符串的大写形式
10.ublic String toLowerCase()
返回一个字符串的小写形式
11.public String substring( int beginIndex , int endIndex)
返回该字符串从begin开始到end结尾的字符串
- public class A
- {
- public static void main(String [] args)
- {
- String s1 = "zmzb",s2 = "ZMZB";
- System.out.println(s1.charAt(1));//m
- System.out.println(s1.length());//
- System.out.println(s1.indexOf('m'));//1,z下标是0
- System.out.println(s1.indexOf('s'));//-1
- System.out.println(s1.equals(s2));//false
- System.out.println(s1.equalsIgnoreCase(s2));//true
- String sr = "狂人日记";
- String ssr = sr.replace('日','周');
- System.out.println(ssr);//狂人周记
- }
- }
8.StringBuffer类
由来:string类对象一旦创建就不可更改,如果经常对字符串内容进行修改,则使用string buffer,否则既耗时间又耗空间
string类中没有修改字符串的方法,但是stringbuffer类中大量拥有
9.string buffer类的构造函数
public StringBuffer()
创建一个空的没有任何字符的StringBuffer对象
public StringBuffer(int capacity)
创建一个不带字符,但具有指定出生容量的字符串缓冲区
public StringBuffer(String str)
创建一个StringBuffer对象,包含与str对象相同的字符序列
10.常用方法
public StringBuffer delete(int start ,int end)
删除从start开始到end-1为止的一段字符序列,返回修改后的该StringBuffer对象引用
- public class A
- {
- public static void main(String [] args)
- {
- StringBuffer sb = new StringBuffer();
- sb.append("abc");
- sb.append("123");
- System.out.println(sb);//abc123
- sb.insert(3,"--");//在下标为3的位置插入
- System.out.println(sb);//abc--123
- sb.delete(2,6);
- System.out.println(sb);//ab23
- sb.reverse();//逆序
- String str = sb.toString();//32ba
- System.out.println(str);//32ba
- }
- }
Java记录4--string的更多相关文章
- 深入理解Java中的String
一.String类 想要了解一个类,最好的办法就是看这个类的实现源代码,来看一下String类的源码: public final class String implements java.io.Ser ...
- 【原创】Java编译器对String的优化
首先看以下的代码: public static void main(String[] arge) { String str1 = new String("1234"); Strin ...
- 再解java中的String
今天看到一篇文章中,写了关于java中的String.我看了后,是我从学java来觉得是最好的一篇关于String类的文章.看了这篇文章你就会对String的认识会提高一个层次.故将原作者的文章特意转 ...
- (转)Java中的String为什么是不可变的
转自:http://www.importnew.com/7440.html String是所有语言中最常用的一个类.我们知道在Java中,String是不可变的.final的.Java在运行时也保存了 ...
- 关于JAVA中的String的使用与连接(转)
JAVA中的String连接性能 Java中的String是一个非常特殊的类,使它特殊的一个主要原因是:String是不可变的(immutable). String的不可变性是Ja ...
- Java常量字符串String理解
Java常量字符串String理解 以前关于String的理解仅限于三点:1.String 是final类,不可继承2.String 类比较字符串相等时时不能用“ == ”,只能用 "eq ...
- Java中的String为什么是不可变的?
转载:http://blog.csdn.net/zhangjg_blog/article/details/18319521 什么是不可变对象? 众所周知, 在Java中, String类是不可变的.那 ...
- Java中的String与常量池[转帖]
string是java中的字符串.String类是不可变的,对String类的任何改变,都是返回一个新的String类对象.下面介绍java中的String与常量池. 1. 首先String不属于8种 ...
- Java中的String与常量池
string是java中的字符串.String类是不可变的,对String类的任何改变,都是返回一个新的String类对象.下面介绍java中的String与常量池. 1. 首先String不属于8种 ...
- java中字符串String 转 int(转)
java中字符串String 转 int String -> int s="12345"; int i; 第一种方法:i=Integer.parseInt(s); 第二种方法 ...
随机推荐
- Analog power pin UPF defination
在一个analog macro端口上,有些pin是always on的,有些是shut down的,如何描述这些pin的power属性?这是一个常见问题,驴就此机会大致描述一下常见的做法.对于这个问题 ...
- 线上BUG定位神器(阿尔萨斯)-Arthas2019-0801
1.下载这个jar 2.运行这个jar 3.选取你需要定位的问题应用进程 然后各种trace -j xx.xxx.xx.className methodName top -n 3 这个后面要补充去看, ...
- 题解 CF492C Vanya and Exams
CF492C Vanya and Exams 有了Pascal题解,来一波C++题解呀qwq.. 简单的贪心题 按b[i]从小到大排序,一个一个学科写直到达到要求即可 #include<cstd ...
- Azure IoT Hub 十分钟入门系列 (1)- 10分钟带你了解Azure IoT Hub 并创建IoT Hub
建议您先对<Azure 上 IoT 整体解决方案概览 >进行了解. 本文主要分享一个案例: 10分钟-了解Azure IoT Hub并创建Azure IoT Hub 本文主要有如下内容: ...
- Dart语言学习(三)Dart数值型
一.类型 数值型有 num,int, double num a = ; a = 12.5; print(a); print(a.runtimeType); ; // b = 20.5; print( ...
- (原创)Windows下编译的Shell脚本不能再Linux中运行的解决办法
一.原理 Windows编译的文件和Linux编译的文件格式不太一样,导致在Linux运行Shell脚本的时候会提示:/bin/bash^M: bad interpreter: 没有那个文件或目录. ...
- Linux-VMware 15 虚拟机黑屏问题
VMware 15 虚拟机黑屏问题 最近终于舍弃win7,换了win10的操作系统... VM12不兼容,各种问题频出,于是换了VM15. 新装了kali2019.03,结果刚装好不久,在某一 ...
- NIO的理解
一.缓冲区(Buffer):在java NIO中负责数据的存取,实际上就是数组,用于存储不用数据类型的数据,根据数据类型不同(boolean除外),提供了相应类型的缓冲区(ByteBuffer,Cha ...
- WLC license管理
关于控制器的license,可以参考对应平台的Datasheet: Cisco 2504 WLC Cisco 3504 WLC Cisco 5508 WLC Cisco 5520 WLC Cisco ...
- leetcode 697
Given a non-empty array of non-negative integers nums, the degree of this array is defined as the ma ...