/** * Created by test on 2017/7/6. */ public class StringTest { public static void main(String[] args){ String s1 = new String(); // 空构造函数 String s2 = new String("hello"); // String参数生成一个字符串 //String s3 = new String(char tmp[]); // 1. 字符串的内容一旦被创建就不可改变,只是改变了s3的引用,test1的内容没变! String s3 = "test1"; s3 = "test2"; System.out.println("s3:" + s3); // 2. s4 = s1 + s2,但和s3不等!!(可通过intern()方法判断是否包括了相同的String对象) String str1 = "fly"; String str2 = "weight"; String str3 = "flyweight"; String str4 = null; str4 = str1 + str2; // 如果字符串1和字符串2通过+连接产生的对象时test3指向的,那么表示字符串是可变的! System.out.println(str3 == str4); // 如果不是str3表示的字符串,那么表示两个连接后产生了新的字符串对象。用str4来指定 str4 = (str1 + str2).intern(); // 要想str3和str4值向同一个对象就可以通过.intern()这个方法来达到 System.out.println(str3 == str4);*/ // 3. length(), 一个汉字算一个字符 String s1 = "我爱大北京"; // 一个汉字算一个字符 String s2 = "abcde"; System.out.println(s1.length()); System.out.println(s2.length()); //4. charAt(),返回所在索引位置的字符,索引从0开始算 String s1 = "我爱大北京"; // 一个汉字算一个字符 String s2 = "abcde"; System.out.println(s1.charAt(3)); System.out.println(s2.charAt(2)); //5.equals方法,equalsIgnoreCase方法 String tom = new String("we are students"); String jick = new String("We are students"); String jerry = new String("we are students"); System.out.println(tom.equals(jick)); System.out.println(tom.equals(jerry)); // 6. equals和“==”,==可用于基本类型的比较,如果用于引用对象则表明是否指向同一个对象! // equals一般用于对象的比较 String str1 = new String("caterpillar"); String str2 = new String("caterpillar"); System.out.println(str1 == str2); System.out.println(str1.equals(str2));// str1和str2所对应的字符串内容一样 //7.compareTo和compareToIgnoreCase方法,是按照字典顺序与参数s进行比较; String s1 = "tjitcast"; String s2 = "csdn"; String s3 = new String("csdn"); System.out.println(s1.compareTo(s2));// s1 > s2,取值为正 System.out.println(s3.compareTo(s2)); // 内容相等,取值为零 // 8. indexOf,进行字符串搜索,搜索不到则返回为-1 String s1 = "北京海淀区昌平区朝阳区西城区"; System.out.println(s1.indexOf("区")); // 返回首次出现的位置,如果没有找到则返回为-1 System.out.println(s1.indexOf("的")); System.out.println(s1.indexOf("区", 5)); //从指定位置进行搜索 System.out.println(s1.lastIndexOf("区")); //最后一次出现的位置 System.out.println(s1.lastIndexOf("区", 12)); //查找12位置之前最后一次出现的位置 // 9. startsWith, endsWith,是否以指定的前缀或者后缀开始或者结束 String tom = "229402-432-43345345"; String jerry = "99099009009023232301"; System.out.println(tom.startsWith("229")); System.out.println(jerry.endsWith("4301")); //10. regionMatches方法 // regionMatches(int firstStart, String other, int otherStart, int length) // 当前字符串从firstStart位置截取长度为length字符串,与字符串other,从otherStart位置截取length字符串进行比较; String s1 = "北京aaaaaaaa"; String s2 = "天津aaaaaaaa"; System.out.println(s1.regionMatches(2, s2, 2, 8)); // 11. 字符串修改 substring,进行字符串截取,但不改变原来字符串内容 String s1 = "北京海淀区昌平区"; System.out.println(s1.substring(2)); System.out.println(s1.substring(2, 5)); // 12. replace()进行字符串替换(所有出现的都进行替换) String s1 = "mesquite in your cellar".replace('e', 'o'); System.out.println("s1: " + s1); String s2 = "the war of baronets".replace('r', 'y'); System.out.println("s2: " + s2); String s4 = "JonL"; System.out.println(s4.replace('o', 'g')); System.out.println("s4: " + s4); //13 . trim()去掉开始、结束的空格 String s1 = " my name is xmh "; System.out.println(s1); System.out.println(s1.trim()); //14. concat方法,将指定字符串连接到此字符串的结尾,返回的的字符串为新创建的String对象 String s1 = "cares"; s1.concat("1"); System.out.println("s1 : " + s1); // 15. split方法:根据给定的正则表达式的匹配来拆分此字符串 String[] fakeFileData = { "justin\t64/5/26\t0939002302\t5433343", "momor\t68/7/23\t0939100391\t5432343" }; for(String data : fakeFileData){ String[] tokens = data.split("\t"); //\t为字符串的分割符号 for(String token : tokens){ System.out.print(token + ","); } System.out.println(); } //16. 转换为整型 int x; String s = "6542"; x = Integer.parseInt(s); System.out.println("x: " + x); float n = Float.parseFloat(s); System.out.println("n: " + n); // 17. 将字符串中的字符复制到字符数组 String s1 = "mynameisxmh"; char[] temp = new char[6]; s1.getChars(2, 8, temp, 0); for(char r : temp){ System.out.println("r: " + r); } } }
Java中String练习操作
最新推荐文章于 2023-02-09 20:18:01 发布
本文深入探讨Java中字符串的各种操作方法,包括字符串的创建、比较、修改、搜索等功能,并解析了字符串内部实现机制及最佳实践。
3269

被折叠的 条评论
为什么被折叠?



