JAVA 12 (String类)

 

class Test
{
 public static void main(String[] args)
 {
 
  String s1 = "abc";  //s1是一个类类型的变量,abc是一个对象,字符串的最大特点,一单被初始化就不能改变。s1是字符串的引用。
  String s2 = new String("abc");
  System.out.println(s1==s2);
  System.out.println(s1.equals(s2));//String类复写了Object类中的equals方法,
          //用于判断两个字符串是否相同
          //s1,s2的区别:s1在内存中一个对象,s2有两个对象。
 
 }
}
 
 
字符串类型常用方法
 
String类适用于描述字符串事物,提供了多个方法对字符串进行操作。
常见的方法有:
 
1,获取。
    1.1 字符串中包含的字符数,即字符串长度。 int length()
    1.2 根据位置获取位置上的某个字符。char charAt(int index)
    1.3 根据字符获取该字符的在字符串中的位置。   
          int indexOf(int ch) //因为接收的是ASCII码,返回ch在字符串中第一次出现位置。
          int indexOf(int ch,int fromindex)//从指定位置开始获取位置。 
          int indexOf(String str)
          int indexOf(String str,int fromindex)    
例子:
 
class Test
{
 public static void method_get()
 {
  String str = "abcdeakpf";
  //长度
  sop(str.length());
  //根据字符获取索引
  sop(str.indexOf('a',3)); //如果没有找到返回-1
  //根据索引获取字符
  sop(str.charAt(4));
  //反向查找字符出现的位置
  sop(str.lastIndexOf('a'));
 
 }
 public static void main(String[] args)
 {
 
  method_get();
 
 
 }
 public static void sop(Object obj)
 {
  System.out.println(obj);
 }
}
 
 
2,判断。
    2.1 字符串中是否包含某一个字符串。boolean contains(str)
    2.2 字符串中是否有内容。boolean isEmpty()
    2.3 字符串是否是以指定内容开头。 boolean startsWith(str);
    2.4 字符串是以什么结尾。 boolean endsWith(str);
    2.5 判断字符串内容是否相同 boolean equals(str);
    2.6 忽略大小写判断内容是否相同 boolean equalsIgnoreCase(str);
 
class Test
{
 public static void method_is()
 {
  String str = "ArrayDemo.java";
  sop(str.startsWith("Array"));
  sop(str.endsWith(".java"));
  sop(str.contains("Demo"));
 }
 public static void main(String[] args)
 {
  method_is();
 }
 public static void sop(Object obj)
 {
  System.out.println(obj);
 }
}
 
3,转换。
    3.1 将字符数组转成字符串 
        构造函数: String(char [])  / String(char [],offeset,count):字符数组部分转为字符串
        静态方法:static String copyValueOf(char [])  ,static String copyValueOf(char [],offeset,count)
 
    3.2 将字符串转成字符数组
            char [] toCharArray();
    3.3 将字节数组转成字符串
            Stirng(byte [])
    3.4 将字符串转成字节数组
              byte [] getBytes()
    3.5 将基本数据类型转换成字符串:static String valueOf(int/doubule)  同                          
        3+"" 
   
举例:
 
 
class Test
{
 public static void method_trans()
 {
  char [] arr ={'a','b','c','d','e','f'};
  String s = new String(arr);
  sop(s);
  String s2 = new String(arr,1,3);
  sop(s2);
  String s1 = "zxcvbnm";
  char [] chs = s1.toCharArray();
  for(int x=0;x<chs.length;x++)
   sop(chs[x]);
 }
 public static void main(String[] args)
 {
  method_trans();
 }
 public static void sop(Object obj)
 {
  System.out.println(obj);
 }
}
 
 
4,替换:String replace(oldchar,newchar)
5,切割:String split(regex)
6,子串:获取字符串中的一部分。:String substring(begin)/(begin,end)
7,转换,去除空格,比较。
    7.1 字符串转成大写或者小写。String toUpperCase();  String toLowerCase();
    7.2 将字符串两端多余空格去除。String trim();
    7.3 将字符串进行自然顺序比较。int compareTo(stirng);
 
 
 
练习1:除去两端空格:charAT,substring(begin,end)
练习2:反转字符串:toCharArray()
练习3:统计指定字符串出现次数,int indexOf(str,index)
练习4:寻找最大长度子串:两个循环,控制最大子串长度,判断是否存在,boolean  str.contains(str) //原来和indexOf类似
 
练习4代码:
public class Test1
{
 
 public static void main(String args [])
 {
  String a="sifduhsdifhsahasiudhiszhangxushissshuidhiasdfasndsf";
  String a1="asdfsadfzhangxushissshuidkljfg";
  sop(getCommon(a,a1));
   
 }
 
 public static String getCommon(String str,String str1)
 {
  for(int x=0;x<str.length();x++)
  {
   for(int y=0;y<=x;y++)
   {
    String str2=str1.substring(y,str1.length()-x+y);
    if(str.contains(str2))
     return str2;
11111
   }
  }
  return null;
 }
 public static void sop(Object c)
 {
  System.out.println(c);
 }
 
}
 
 
 
StringBuffer
StringBuffer是字符串缓冲区。
 
是一个容器:
1,长度是可以变化的
2,可以直接操作多种数据类型
3,最终会通过toString方法变成字符串
 
功能:
1,存储
        
StringBuffer 
append():将指定数据作为参数添加到已有数据的结尾处。返回的还是原缓冲区对象。
        StringBuffer insert(index,数据):可以将指定数据插入到指定位置,0开始。
2,删除
       
StringBuffer delate(int start , int end):包含头,不包含结尾。 
       
StringBuffer delateCharAt(int index):删除指定位置元素
3,获取
       char charAt(int index)
       int indexOf(String str)
       int lastIndexOf(String str)
       int length()
       String substring(int start,int end)
4,修改
       StingBuffer replace(int start,int end,String str):将指定位置替换成指定字符串
       setCharAt(int index,char c):指定位置位置替换字符
5,反转。
       StringBuffer reverse()
6 char [] sb.getChars(int srcbegin,int srcend,char [],int index from char [])
 
 
StringBuilder
 
方法和StringBufffer差不多,基本都用。
 
不同之处在于:
StringBuffer是线程同步的,是安全的。但老是判断锁,浪费资源。
StringBuilder是不线程不同步的。多线程不建议使用。
 
升级三个因素
1,建华书写
2,提高效率
3,提供安全性
 
 
基本数据类型对象包装类
 
byte        Byte
short        Short
int             Integer
long          Long
boolean     Boolean
float             Float
double        Double
char            Character
基本数据类型        对应的对象,类   
 
基本数据类型包装类的最常见作用就是,基本数据类型和字符串类型之间的相互转换。
 
--->:
基本数据类型+“”;
基本数据类型.toString(基本数据类型);
如:Integer.toString(34);
<---:
格式: xxx a = Xxx.passXxx("string");
int number=Integer.passInt("123");
 
String s = Strings.valueOf(String)
 
public class Test1
{
 public static void main(String args [])
 {
 sop(Integer.MAX_VALUE);
 }
 public static void sop(Object c)
 {
  System.out.println(c);
 }
}
 
 
 
 
 

 

posted @ 2015-07-25 15:16  hitz&x  阅读(219)  评论(0编辑  收藏  举报