Java中String的用法

Object到String的联系

Object基本使用

package com.cloud.day2;

/*

java是面向对象的语言,核心思想:找适合的对象做适合的事情:

   方式一:自定义类,然后通过自定义的类创建对象。

   方式二:sun提供了很多的类给我使用,我们只需要认识这些类,我们就可以通过这些类创建对象了。

  

Object类是所有类的终极父类。任何一个类都继承了Object类。

Object类:

Object类常用的方法:

   toString();     返回该对象的字符串表示。返回一个字符串用于描述该对象的。

疑问: toString() 有何作用?   重写toString之后,我们直接输出一个对象的时候,就会输出符合我们所需求的格式数据。

   equals(Object obj)   用于比较两个对象的内存地址,判断两个对象是否为同一个对象。

   hashCode()   返回该对象的哈希码值(大家可以把哈希码就理解成是对象的内存地址)/

java中的规范:一般我们重写了一个类的equals方法,我们都会重写它的hashCode方法。

 

java是开源....源代码公开...

查看源代码的方式:

   方式一:按住ctrl键,单击你需要看的源代码.

   方式二:把光标移动到你需要查看代码处按下F3.

  

为什么我们要查看源代码:

   1,查看源代码可以了解别人是如何写出这个技术的,让我们了解的更加的深入。

   2. 吸收大牛的思想。

看源代码最忌讳的一点:不要每行代码都弄懂是什么意思,能看个大概猜出他意思就足矣。

 */

class Person{

   int id;

   String name;

   public Person(){}

   public Person(int id,String name){

      this.id=id;

      this.name=name;

   }

   //目前我需要直接输出一个对象的时候,输出的格式是:编号:110 姓名:狗娃  这种格式。目前Object

   //toString方法无法满足子类的需求,那么这时候我们就应该对Object类的toString进行重写。

   @Override

   public String toString() {

      return "编号:"+this.id+";姓名:"+this.name;

   }

   //为什么要重写:Objectequals方法默认比较的是两个对象的内存地址,我目前需要比较的是两个对象的身份证,所以Object类的equals方法不符合我现在的需求。

   @Override

   public boolean equals(Object obj) {

      Person p = (Person) obj;

      return   this.id == p.id;

   }

   @Override

   public int hashCode() {

      return this.id;

   }

}

public class Demo1 {

   public static void main(String[] args) {

      Object o = new Object();

      //输出一个对象的时候,实际上在println方法内部会调用这个调用的toString方法

      System.out.println(o);

      System.out.println(o.toString());

      Person p1 = new Person(1,"Spring");

      System.out.println(p1.toString());

      Person p2 = new Person(1,"Summer");

      System.out.println("p1==p2?"+p1.equals(p2));

      System.out.println("p1="+p1.hashCode());

      System.out.println("p1="+p2.hashCode());

   }

}

String类基本使用

package com.cloud.day3;

/*

String 字符串类:

笔试题目:new String("abc")创建了几个对象?

两个对象,一个对象是位于字符串常量池中,一个对象是位于堆内存中。

*/

public class Demo1 {

   public static void main(String[] args) {

      String str1 = "hello";

      String str2 = "hello";

      String str3 = new String("hello");

      String str4 = new String("hello");

      System.out.println(str1==str2);

      System.out.println(str2==str3);

      System.out.println(str3==str4);

      //String类重写了Objectequals方法,比较的是两个字符串对象的内容是否一致。

      // "=="用于比较引用数据类型数据的时候比较的是两个对象的内存地址,equals方法默认情况下比较也是两个对象的内存地址。

      System.out.println(str3.equals(str4));

      test(null);

   }

   public static void test(String str){

      if("中国".equals(str)){

        System.out.println("Say,Right");

      }else{

        System.out.println("Say,Error");

      }

   }

}

String构造方法

package com.cloud.day3;

/*

String 的构造方法:

 

   String()  创建一个空内容的字符串对象。

   String(byte[] bytes)  使用一个字节数组构建一个字符串对象

   String(byte[] bytes, int offset, int length)

      bytes :  要解码的数组

      offset指定从数组中那个索引值开始解码。

      length: 要解码多个元素。

  

   String(char[] value)  使用一个字符数组构建一个字符串。

   String(char[] value, int offset, int count)  使用一个字符数组构建一个字符串,指定开始的索引值,与使用字符个数。

   String(int[] codePoints,int offset,int count)

   String(String original)

记住:使用字节数组或者字符数组都可以构建一个字符串对象。

*/

public class Demo2 {

   public static void main(String[] args) {

      String str = new String();

      byte[] buf={97,98,99};

      str = new String(buf);

      str = new String(buf,1,2);

      System.out.println(str);

      char[] arr={'','',''};

      str = new String(arr);

      System.out.println(str);

      str = new String(arr,1,2);

      System.out.println(str);

      int[] arr2 = {65,66,67};

      str = new String(arr2,0,2);

   }

}

String获取方法

package com.cloud.day3;

/*

2.2   获取方法

   int length()  获取字符串的长度

   char charAt(int index) 获取特定位置的字符 (角标越界)

   int indexOf(String str) 查找子串第一次出现的索引值,如果子串没有出现在字符串中,那么则返回-1表示。

   int lastIndexOf(String str) 查找子串最后一次出现的索引值 , 如果子串没有出现在字符串中,那么则返回-1表示

*/

public class Demo3 {

   public static void main(String[] args) {

      String str = "abc中国ab中国";

      System.out.println(str.length());

      System.out.println(str.charAt(3));

      System.out.println(str.indexOf("中国"));

      System.out.println(str.lastIndexOf("中国"));

   }

}

String判断转换方法

package com.cloud.day3;

import java.util.Arrays;

/*

2.3   判断方法

   boolean endsWith(String str) 是否以指定字符结束

   boolean isEmpty()是否长度为0 如:“” null V1.6

   boolean contains(CharSequences) 是否包含指定序列应用:搜索

   boolean equals(Object anObject) 是否相等

   boolean equalsIgnoreCase(String anotherString) 忽略大小写是否相等

 

2.4   转换方法    

char[] toCharArray()  将字符串转换为字符数组

byte[]  getBytes();

字节数组与字符数组、字符串他们三者之间是可以互相转换。

*/

public class Demo4 {

   public static void main(String[] args) {

      String str = "Demo.java";

      System.out.println(str.endsWith("ja"));

      System.out.println(str.contains("Demo"));

      System.out.println("DEMO.JAVA".equals(str));

      System.out.println("DEMO.JAVA".equalsIgnoreCase(str));

      char[] buf = str.toCharArray();

      System.out.println(Arrays.toString(buf));

      byte[] buf2 = str.getBytes();

      System.out.println(Arrays.toString(buf2));

   }

}

String分割切换方法

package com.cloud.day3;

 

import java.util.Arrays;

 

/*

其他方法

   String replace(String oldChar, String newChar) 替换

   String[] split(String regex) 切割


   String substring(int beginIndex)   指定开始的索引值截取子串

   String substring(int beginIndex, int endIndex)指定开始与结束的索引值截取子串


   String toUpperCase() 转大写

   String toLowerCase() 转小写

   String trim() 去除字符串首尾的空格

*/

public class Demo5 {

   public static void main(String[] args) {

      String str = "今天晚上不考试";

      System.out.println("指定新内容替换旧的内容:"+ str.replace("", "要好好"));

      str = "大家---";

      String[] arr = str.split("-"); //根据指定的字符进行切割

      System.out.println("字符串数组的内容:"+ Arrays.toString(arr));

      str = "上海和平大饭店";

      System.out.println("指定开始的索引值截取子串:"+ str.substring(2));

      System.out.println("指定开始的索引值截取子串:"+ str.substring(2,6)); //包头不包尾  注意:截取的内容是包括开始的索引值,不包括结束的索引值,截取的位置是结束的索引值-1.

      str = "abC中国";

      System.out.println("转大写:" + str.toUpperCase());

      str = "AbdfSDD";

      System.out.println("转小写:"+ str.toLowerCase());

      str = "         大家最近        都非常努力            ";

      System.out.println("去除字符串首尾的空格:"+ str.trim()); 

   }

}

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值