码迷,mamicode.com
首页 > 其他好文 > 详细

String类

时间:2016-08-22 00:09:21      阅读:221      评论:0      收藏:0      [点我收藏+]

标签:

1 构造函数

package String;

 

public class StringConstructor {

   public static void main(String []args)

   {

   StringConstructorDemo();

   StringConstructorDemo2();

   }

 

private static void StringConstructorDemo2() {

char []arr={‘w‘,‘a‘,‘p‘,‘q‘,‘x‘};

String s=new String(arr);

String s1=new String(arr,2,3);

System.out.println(s1);

}

 

private static void StringConstructorDemo() {

   String s=new String(); //等效于String s="";但是不等效于String s=null;

  //字节数组变成字符串并连接

   byte[]arr={65,66,67,68};

   String s1=new String(arr);

   System.out.println("s1="+s1);

}

  

}

 

 

2

String类常用方法

package String;

 

public class StringMethodDemo {

   public static void main(String []args)

   {

/*按照面向对象的思想对字符串的功能进行分类*/

  /*

   * 1获取

   * 1.1获取字符串中子串的字数

   * int length();

   * 1.2根据位置获取字符

   * char charAt(int index)

   * 1.3 根据字符获取在字符串中第一次出现的位置

   *  int indexOf(int ch)

   *  int indexOf(int ch,int from index)//从指定位置开始找

   *  int indexOfString str)

   *  int indexOf(String str,from index)

   *上述的加上last就是从后面往前找  

   *

   *1.4获取字符串中一部分字符串,也叫子串

   *substring (int beginIndex ,int endIndex )

   *substring (int beginIndex  )//直到末尾

   *

   *

   * 2转换

   *  2.1将字符串变成字符串数组(字符串的切割)

   *   String[] split(String regex);

   *   2.2 将字符串变成字符数组

   *   char[] toCharArray();

   *   2.3将字符串变成字节数组

   *   byte[] getBytes();

   *   2.4 将字符串中的字母转成大小写

   *    String toUpperCase();

   *    String toLowerCase()

   *    2.5将字符串中的内容进行替换

   *    String replace(char oldChar,char newChar)

   *    2.6将字符串两端空格去除

   *    String trim();

   *    2.7将字符串进行连接

   *    String concat(string)

   *  3 判断

   *     3.1两个字符串内容

   *     boolean equals(Object obj)

   *     boolean equalIgnoreCase(String arr)

   *     3.2字符串中是否包含指定字符串

   *     boolean contains(String arr)

   *     3.3字符串是否以指定字符串开头,是否以指定字符串结尾

   *     boolean beginwith(String arr) boolean endwith(String arr)

   *

   *  4比较

   *    4.1按照字典顺序比较字符串

   *    int comparrTo(String arr)

   */    

    //stringMethodDemo1();

    //stringMethodDemo2();

   //stringMethodDemo3();

   stringMethodDemo4();

   }

 

private static void stringMethodDemo4() {

 

 

}

 

private static void stringMethodDemo3() {

String s="abc";

System.out.println(s.equals("AB"));

 

 

}

 

private static void stringMethodDemo2() {

/*String s="张三,李四,王五";

String []arr=s.split(".");

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

System.out.println(arr[i]);

char []chs=s.toCharArray();

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

System.out.println(chs[i]);

s="ab";

byte[]bytes=s.getBytes();

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

System.out.println(bytes[i]);

*/

System.out.println("abv".toUpperCase());

String s="abcsDSSfK";

System.out.println(s.replace(‘S‘, ‘J‘));

System.out.println(s.concat("NBACBA"));

}

 

private static void stringMethodDemo1() {

String s="abcdae";

    System.out.println("length:"+s.length());

System.out.println("char:"+s.charAt(2));

System.out.println("index:"+s.indexOf(‘a‘));

System.out.println("lastindex:"+s.lastIndexOf(‘a‘));

System.out.println("substring:"+s.substring(2,4));

 

}

}

 

3 intern方法

package String;

 

public class StringObjectDemo {

   public static void main(String[] args) {

//String s1="abc";

//String s2="abc";

 

//intern();

   String s1=new String("abc");

   String s2=s1.intern();

 

   

   System.out.println(s1==s2);

}

}

 

 

4练习

 

package String;

/**

 * 字符串排序

 * @author 黄二狗

 *

 */

public class StringPractice {

  public static void main(String[] args) {

String []arr={"anc","cbs","xbx,","nas","csd","dbs"};

printArray(arr);

sortArray(arr);

System.out.println("----");

printArray(arr);

}

 

private static void sortArray(String[] arr) {

 for(int i=0;i<arr.length-1;i++)

 for(int j=i+1;j<arr.length;j++)

 {

 if(arr[i].compareTo(arr[j])>0)

 swap(arr,i,j);

 

 }

}

 

 

private static void swap(String[] arr, int i, int j) {

String temp=arr[i];

arr[i]=arr[j];

arr[j]=temp;

}

 

 

 

private static void printArray(String[] arr) {

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

{

System.out.println("arr"+i+arr[i]);

}

}

}

 

 

 

 

 

 

 

package String;

 

public class StringPractice22 {

//计算子串个数

public static void main(String[] args) {

      String str="abcbcsadadabcas";

  String key="ab";

  

  int count=getKeyStringCount(str,key);

  System.out.println("count="+count);

 

}

   /**

    * 获取子串在整串中出现的次数

    * @param str

    * @param key

    * @return

    */

private static int getKeyStringCount(String str, String key) {

int count=0;

int index=0;

 

while((index=str.indexOf(key))!=-1)

{

str=str.substring(index+key.length());

count++;

}

return count;

}

 

}

 

 

 

 

 

 

package String;

/**

 * 获取最大子串

 * @author 黄二狗

 *

 */

public class StringPractice3 {

  public static void main(String[] args) {

  String s1="qwerabctyuiop";

  String s2="xcabcdvbn";

  

  String s=getMaxSubstring(s1,s2);

    System.out.println("s="+s);

}

 

public static String getMaxSubstring(String s1,String s2) {

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

{

for(int a=0,b=s2.length()-i;b!=s2.length()+1;a++,b++)

{

String sub=s2.substring(a,b);

if(s1.contains(sub))

return sub;

}

 

}

return null;

}

}

 

 

 

2 StringBuffer

1 StringBuffer特点

  /*

   * StringBuffer就是字符串缓冲区

   * 用于存储数据的容器

   * 特点

   * 1 长度是可变的

   * 2 可以存储不同类型数据

   * 3  最终要转化成字符串进行使用

   * 4 可以对字符串进行修改

   *

   * 既然是一个容器,应该具备什么功能呢?

   * 1  添加

   *      StringBuffer append(data);

   * 2  删除

   *

   * 3 查找

   *

     4 修改  需要时查找API

      * /

 

 

 

 

可变数组原理:其实就是开辟一个更大的数组 将原数组中的内容进行复制

 

 

3 StringBuilder

用法与StringBuffer一样 但是不保证同步 线程不安全。在不考虑同步的情况下,选用StringBuilder

 

String类

标签:

原文地址:http://www.cnblogs.com/HJL085/p/5793995.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!