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的更多相关文章

  1. 深入理解Java中的String

    一.String类 想要了解一个类,最好的办法就是看这个类的实现源代码,来看一下String类的源码: public final class String implements java.io.Ser ...

  2. 【原创】Java编译器对String的优化

    首先看以下的代码: public static void main(String[] arge) { String str1 = new String("1234"); Strin ...

  3. 再解java中的String

    今天看到一篇文章中,写了关于java中的String.我看了后,是我从学java来觉得是最好的一篇关于String类的文章.看了这篇文章你就会对String的认识会提高一个层次.故将原作者的文章特意转 ...

  4. (转)Java中的String为什么是不可变的

    转自:http://www.importnew.com/7440.html String是所有语言中最常用的一个类.我们知道在Java中,String是不可变的.final的.Java在运行时也保存了 ...

  5. 关于JAVA中的String的使用与连接(转)

    JAVA中的String连接性能 Java中的String是一个非常特殊的类,使它特殊的一个主要原因是:String是不可变的(immutable).           String的不可变性是Ja ...

  6. Java常量字符串String理解

    Java常量字符串String理解 以前关于String的理解仅限于三点:1.String 是final类,不可继承2.String 类比较字符串相等时时不能用“ == ”,只能用  "eq ...

  7. Java中的String为什么是不可变的?

    转载:http://blog.csdn.net/zhangjg_blog/article/details/18319521 什么是不可变对象? 众所周知, 在Java中, String类是不可变的.那 ...

  8. Java中的String与常量池[转帖]

    string是java中的字符串.String类是不可变的,对String类的任何改变,都是返回一个新的String类对象.下面介绍java中的String与常量池. 1. 首先String不属于8种 ...

  9. Java中的String与常量池

    string是java中的字符串.String类是不可变的,对String类的任何改变,都是返回一个新的String类对象.下面介绍java中的String与常量池. 1. 首先String不属于8种 ...

  10. java中字符串String 转 int(转)

    java中字符串String 转 int String -> int s="12345"; int i; 第一种方法:i=Integer.parseInt(s); 第二种方法 ...

随机推荐

  1. 一些 乱码 GPU的问题

    # # s = '网站地图' 原始 # s1 = s.encode('utf-8') # print(s1.decode('gbk')) #res 缃戠珯鍦板浘 # s = '缃戠珯鍦板浘' 原始 # ...

  2. Spring一些注解

    spring @component的作用详细介绍 1.@controller 控制器(注入服务) 2.@service 服务(注入dao) 3.@repository dao(实现dao访问) 4.@ ...

  3. libcurl库的简介(一)

    一.Libcurl库简介 LibCurl是免费的客户端URL传输库,支持FTP,FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, FILE ,LDAP ...

  4. Java开发中使用模拟接口moco响应中文时乱码

    场景 在开发中需要依赖一些接口,比如需要请求一个返回Json数据的接口,但是返回Json数据的接口要么是没搭建,要么是交互比较复杂. 此时,就可以使用moco来模拟接口返回接口数据,以便开发和测试工作 ...

  5. 6_15 给任务排序(UVa10305)<拓扑排序>

    John有n件事情要做,不幸的是这些事情并不是各自独立的,而是有相依性的.换句话说可能有某件事情一定要在另一件事情做完之后才能做.Input每组测试数据可能有好几列.第一列有2个整数n,m.(1 &l ...

  6. 【C语言】创建一个函数,判断某一正整数是否为水仙花数,并调用这个函数找出1000以内所有水仙花数

    #include <stdio.h> int fun(int x) { int a, b, c; a = x / ; b = x % / ; c = x % ; if (x == a * ...

  7. 洛谷 P1563 玩具谜题(模拟)

    嗯... 题目链接:https://www.luogu.org/problem/P1563 这道题主要问题就是弄明白顺逆时针的问题,其实可以简化成一个异或的问题:当head与x异或值为零时,即为顺时针 ...

  8. mongodb 用户指引

    维护人:陈权 一.mongodb install on linuxcurl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.6 ...

  9. SUDO_EDITOR

    目录 SUDO_EDITOR 参考 SUDO_EDITOR SUDO_EDITOR

  10. python之requests库使用

    requests库 虽然Python的标准库中 urllib模块已经包含了平常我们使用的大多数功能,但是它的 API 使用起来让人感觉不太好,而 Requests宣传是 “HTTP for Human ...