您的位置:首页 > 编程语言 > Java开发

Java中String的用法

2016-07-04 11:30 337 查看

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;
   }
   //为什么要重写:Object的equals方法默认比较的是两个对象的内存地址,我目前需要比较的是两个对象的身份证,所以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类重写了Object的equals方法,比较的是两个字符串对象的内容是否一致。
      // "=="用于比较引用数据类型数据的时候比较的是两个对象的内存地址,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()); 

   }
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: