String类

String类描述的是文本字符串序列。  留言   QQ   写日志。

创建String类的对象的两种方式:

  1. ""直接赋值法
  2. new关键字法

1.1 字符串对象的比较

 

String Str = “jack”这个语句会先检查字符串常量池是否存放这个”jack1”这个字符串对象,如果没有存在,那么就会在字符串常量池中创建这个字符串对象,如果存在直接返回该字符串的内存地址值。

String str3 = new String(“jack”) 该语句会创建两个对象,首先会先检查字符串常量池中存不存在jack这个字符串对象,如果不存在就会创建,如果存在就返回内存地址值。创建了出来之后,new String这个语句就会在堆内存中开辟一个字符串对象。总共两个对象。

 

 

 

1.2 获取方法

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

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

int indexOf(String str) 获取特定字符的位置(overload)

int lastIndexOf(int ch) 获取最后一个字符的位置

 

 

1.3 判断方法

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

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

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

boolean equals(Object anObject) 是否相等

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

 

1.4 转换方法

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

String(char[] value, int offset, int count)

Static String valueOf(char[] data)

static String valueOf(char[] data, int offset, int count)

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

 

 

1.5 其他方法

String replace(char oldChar, char newChar) 替换

String[] split(String regex) 切割

String substring(int beginIndex) 

String substring(int beginIndex, int endIndex)截取字串

String toUpperCase() 转大写

String toLowerCase() 转小写

String trim() 去除空格

1.6 练习

  1. 去除字符串两边空格的函数。

public class Demo1 {

// 定义一个祛除字符串两边空格的函数

public static String trim( String str ){

   

   // 0、定义求字串需要的起始索引变量

   int start = 0;

   int end = str.length()-1;

   // 1. for循环遍历字符串对象的每一个字符

   for (int i = 0; i<str.length() ; i++ )

   {

        if ( str.charAt(i) == ' ' )

        {

             start++;

        }else{

 

     break;

}

   }

   System.out.println( start );

   for (; end<str.length() && end >= 0;  )

   {

        if ( str.charAt(end) == ' ' )

        {

             end--;

        }else{

     break;

}

   }

   System.out.println( end );

   // 2. 求子串

   if( start < end ){

     

 return str.substring( start , (end+1) );

   }else{

     

 return "_";

   }

  1. 获取上传文件名  "D:\\20120512\\day12\\Demo1.java"

public static String getFileName2( String path ){

  return path.substring( path.lastIndexOf("\\") + 1 );

}

}

  1. 将字符串对象中存储的字符反序。

// 将字符串对象中存储的字符反序

public static String reaverseString( String src ){

 

   // 1. 将字符串转换为字符数组

   char chs[] = src.toCharArray();

   // 2. 循环交换

   for ( int start = 0 , end = chs.length - 1; start < end ; start++,end-- )

   {

   // 3. 数据交换

   char temp = chs[end];

   chs[end] = chs[start];

   chs[start] = temp;

   }

  // 4. 将字符数组转换为字符串

       return new String( chs );

}

4. 求一个子串在整串中出现的次数 

 public static int getCount( String src , String tag ){

  // 0. 定义索引变量和统计个数的变量

  int index = 0;

  int count = 0;    

  // 1. 写循环判断

  while ( ( index = src.indexOf(tag) ) != -1 )   // jackjava

  {

   // 2. 求字串

     System.out.println( src );

 src = src.substring( index + tag.length() );   // index 4 + 4 = 8

  System.out.print( src.length() + " : " + index + " :  " + tag.length() );

   // 3. 累加

 count++;

   }

   return count;

}

posted on 2016-10-18 14:38  眼泪笑我愚昧  阅读(159)  评论(0编辑  收藏  举报

导航