zoukankan      html  css  js  c++  java
  • java中String类小结

    构建一个字符串

    1、用字符串直接量:

    String message = new String("Welcome to java");

    2、用字符串直接量:

    String message = "Welcome to java";

    3、用字符数组

    Char[] charArray = {'m', 'y'};

    String message = new String(charArray);

    不可变字符与限定字符串

    String对象是不可变的,内容不能改变

    java虚拟机为了提高效率并节约内存,对具有相同字符串序列的字符串直接量使用同一个实例:

    public class Main
    {
        public static void main(String args[])
        {
        	String s1 = "Welcome to java";
        	String s2 = new String("Welcome to java");
        	String s3 = "Welcome to java";
        	
        	System.out.println("s1 == s2 is " + (s1 == s2));
        	System.out.println("s1 == s3 is " + (s1 == s3));
    	}
    }
    

    结果:

    s1 == s2 is false
    s1 == s3 is true

    字符串的比较

     字符串相等的比较:

    1、使用equals方法

    boolean equals(Object anObject) :当anObject不为空并且与当前String对象一样,返回true;否则,返回false

    2、使用compareTo方法

    int compareTo(String anotherString) :当前String对象与anotherString比较相等关系返回0不相等时,从两个字符串第0个字符开始比较,返回第一个不相等的字符差,另一种情况,较长字符串的前面部分恰巧是较短的字符串,返回它们的长度差。
    int compareTo(Object o) :如果o是String对象,和2的功能一样;否则抛出ClassCastException异常。

     public static void main(String args[])
        {
        	String s1 = "Welcome to java";
        	String s2 = new String("Welcome to java");
        	String s3 = "Welcome to C++";
        	System.out.println(s1.equals(s2));
        	System.out.println(s1.equals(s3));
        	System.out.println(s1.compareTo(s2));
        	System.out.println(s1.compareTo(s3));
    	}
    

    运行结果:

    true
    false
    0
    39

    字符串长度、字符以及组合字符串

    String类提供获取字符串长度、获取单个字符和连接字符串的方法

        public static void main(String args[])
        {
        	String s1 = "Welcome to java";
        	System.out.println("s1's length is: " + s1.length());
        	System.out.println("s1[2] == " + s1.charAt(3));
        	String s2 = " bigjava";
        	String s3 = s1.concat(s2);
        	System.out.println(s3);
        	System.out.println(s1);
    	}
    

    运行结果:

    s1[2] == c
    Welcome to java bigjava
    Welcome to java

    也可以使用(+)连接两个或更多的字符串:String s3 = s1 + s2;

    获取子串

    使用charAt获取单个字符

    也可使用String类中的substring 方法从字符串中提取子串:

    String substring(int beginIndex) 取从beginIndex位置开始到结束的子字符串
    String substring(int beginIndex, int endIndex) :取从beginIndex位置开始到endIndex位置的子字符串

    String s1 = "Welcome to java";
    System.out.println(s1.substring(4));
    System.out.println(s1.substring(2, 7));
    

    运行结果:

    ome to java
    lcome

    字符串的转换、替换和分隔

    String toLowerCase() :将字符串转换成小写。
    String toUpperCase() :将字符串转换成大写。

    String s = "Welcome to java";
    System.out.println("s.toUpperCase(): " + s.toUpperCase()); //s.toUpperCase(): WELCOME TO JAVA
    System.out.println("s.toLowerCase(): " + s.toLowerCase()); //s.toLowerCase(): welcome to java
    

    String replace(char oldChar, char newChar) :将字符号串中第一个oldChar替换成newChar

    String replaceFirst(char oldString, char newString) :将字符号串中第一个oldString替换成newString

    String replaceAll(char oldString, char newString) :将字符号串中所有匹配的oldString替换成newString

    String s = "Welcome to java";
    System.out.println(s.replace('e', 'm'));
    System.out.println(s.replaceFirst("e", "AB"));
    System.out.println("eleleledsafsdfhie".replaceAll("el", "wml"));
    

    运行结果:

    Wmlcomm to java
    WABlcome to java
    wmlwmlwmledsafsdfhie

    public String[] split(String regex):将一个字符串按照指定的分隔符分隔,返回分隔后的字符串数组

    public static void main(String args[])
    {
        	String s = "2014/07/08";
        	String[] array = s.split("/");
        	for(int i = 0; i < array.length; ++i) {
        		System.out.print(array[i] + " ");
        	}
    }
    

    运行结果:

    2014 07 08 

    public String trim():返回该字符串去掉开头和结尾空格后的字符串

    String s = "  weer ewre ";
    System.out.println(s.trim());  // weer ewre
    

    找出字符串中的某个字符或者某个子串

    int indexOf(int ch) :只找第一个匹配字符位置
    int indexOf(int ch, int fromIndex) :fromIndex开始找第一个匹配字符位置
    int indexOf(String str) :只找第一个匹配字符串位置
    int indexOf(String str, int fromIndex) :从fromIndex开始找第一个匹配字符串位置

    public class Main
    {
        public static void main(String args[])
        {
        	String s = new String("talk is cheap, show me your code!");
        	String ss = new String("me");
        	System.out.println(s.indexOf('s'));
        	System.out.println(s.indexOf('s', 7));
        	System.out.println(s.indexOf("ch"));
        	System.out.println(s.indexOf("ch", 9));
    	}
    }
    

    运行结果:

    6
    15
    8
    -1

    int lastIndexOf(int ch)
    int lastIndexOf(int ch, int fromIndex)
    int lastIndexOf(String str)
    int lastIndexOf(String str, int fromIndex) 以上四个方法与13、14、15、16类似,不同的是:找后一个匹配的内容

    public class Main
    {
        public static void main(String args[])
        {
        	String s = new String("talk is cheap, show me your code!");
        	String ss = new String("me");
        	System.out.println(s.lastIndexOf('c'));
        	System.out.println(s.lastIndexOf("e"));
        	System.out.println(s.lastIndexOf('e', 7));
        	System.out.println(s.lastIndexOf("me", 22));
    	}
    }
    

    运行结果:

    28
    31
    -1
    20

    字符串与数组之间的转换

    char[ ] toCharArray() :将该String对象转换成char数组

    void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) :该方法将字符串拷贝到字符数组中。其中,srcBegin为拷贝的起始位置、srcEnd为拷贝的结束位置、字符串数值dst为目标字符数组、dstBegin为目标字符数组的拷贝起始位置。

    char[] s1 = {'I',' ','l','o','v','e',' ','h','e','r','!'};//s1=I love her!
    String s2 = new String("you!"); s2.getChars(0,3,s1,7); //s1=I love you!
    System.out.println( s1 );

    运行结果:

    I love you!

    将字符和数值转换成字符串

    static String valueOf(boolean b)
    static String valueOf(char c)
    static String valueOf(char[] data)
    static String valueOf(char[] data, int offset, int count)
    static String valueOf(double d)
    static String valueOf(float f)
    static String valueOf(int i)
    static String valueOf(long l)
    static String valueOf(Object obj)
    以上方法用于将各种不同类型转换成Java字符型。这些都是类方法。

    public class Main
    {
        public static void main(String args[])
        {
        	String s1 = String.valueOf('c');
        	char[] charArray = {'w', 'e', 'a', 'r'};
        	String s2 = String.valueOf(charArray);
        	double d = 3.1415926;
        	String s3 = String.valueOf(d);
        	float f = 2.045f;
        	String s4 = String.valueOf(f);
        	int i = 2324;
        	String s5 = String.valueOf(i);
        	long l = 2135123;
        	String s6 = String.valueOf(l);
        	boolean b = false;
        	String s7 = String.valueOf(b);
        	System.out.println(s1);
        	System.out.println(s2);
        	System.out.println(s3);
        	System.out.println(s4);
        	System.out.println(s5);
        	System.out.println(s6);
        	System.out.println(s7);
    	}
    }
    

    运行结果:

    c
    wear
    3.1415926
    2.045
    2324
    2135123
    false

      

  • 相关阅读:
    sql语句中的通配符
    Q&A 20090922
    Web大文件上传
    作别2010, 迎来2011的第一个工作日
    .Net 中 获取当前应用程序启动目录的几个方法
    asp.net身份验证和使用Silverlight的问题
    常用正则表达式
    最完美的xslt数值函数与字符串函数
    SQL2005的分页存储过程,支持多表多关联,亲测高效绝对可用
    处理大并发下的dropdownlist数据关联
  • 原文地址:https://www.cnblogs.com/bigjava/p/3832353.html
Copyright © 2011-2022 走看看