package com.itheima; import java.util.StringTokenizer; public class 字符串训练学习 { public static void main(String[] args) { String s = new String("HelloWorld"); System.out.println(s); System.out.println(s.length()); //创建字符串 //String s = new String("字符串") //用.length()方法来获取字符串长度 //用String中equals的方法来判定两个字符串是否相同 String str1 = new String("Hello"); String str2 = new String("hello"); String str3 = new String("Hello"); System.out.println(str1.equals(str2)); //布尔类型 false System.out.println(str1.equals(str3)); //布尔类型 true //用stratsWith(s)方法查看字符串前缀是否为字符串s endsWith()方法是后缀 String str4 = new String("own"); String str5 = new String("os"); String str6 = new String("n"); System.out.println(str4.startsWith(str5));//布尔值 System.out.println(str4.endsWith(str6)); // 字符串调用regionMatches(int firstStart,String other,int ortherStart,int length)方法, // 从当前字符串参数firstStart指定的位置开始处,取长度为length的一个子串, // 并将这个子串和参数other指定的一个子串进行比较, // 其中,other指定的子串是从参数othertStart指定的位置开始,从other中取长度为length的一个子串。 // 如果两个子串相同该方法就返回true,否则返回false。 String str7 = new String("Helloworld"); boolean sign = str7.regionMatches(0, str1, 0, 5); System.out.println(sign); String strs1 = new String("hey,bro"); String strs2 = new String("hey,bro"); String strs3 = new String("Hey,bro"); String strs4 = new String("heys"); String strs6 = new String("hey"); String strs5 = new String("o"); boolean st = strs1.equals(strs2); boolean st1 = strs1.startsWith(strs4); boolean st2 = strs1.startsWith(strs6); boolean st3 = strs1.endsWith(strs5); System.out.println(st); System.out.println(st1); System.out.println(st2); System.out.println(st3); boolean op = strs1.regionMatches(0, strs4, 0, 4); System.out.println(op); System.out.println(strs1.length()); /*字符串对象可以使用String类中的compareTo(String s)方法,按字典序与参数s指定的字符串比较大小。 如果当前字符串与s相同,该方法返回值0; 如果当前字符串对象大于s,该方法返回正值;如果小于s,该方法返回负值*/ String er1 = new String("anle"); String er2 = new String("aode"); System.out.println(er1.compareTo(er2)); //字符串的比较大小 //字典序排列 就是按照26个字母的排列顺序 排列字符串,从比较每个字符串开头的字母,以此类推 //例:apple , bol //就是先比较a和b在26字母里的排列顺序 a比b小 那就直接返回负值 //例:azle , aode //开都字母都一样,直接比较第二个字母 z的排列顺序大于aode 返回正值 /*字符串调用方法indexOf (String s)从当前字符串的头开始检索字符串s,并返回首次出现s的位置。 如果没有检索到字符串s,该方法返回的值是-1。 字符串调用indexOf(String s ,int startpoint)方法从当前字符串的startpoint位置处开始检索字符串s,并返回首次出现s的位置。 如果没有检索到字符串s,该方法返回的值是-1。 字符串调用lastIndexOf (String s)方法从当前字符串的头开始检索字符串s,并返回最后出现s的位置。 如果没有检索到字符串s,该方法返回的值是-1。*/ String se1 = new String("HelloWorld"); String se2 = new String("ld"); System.out.println(se1.indexOf(se2,6)); System.out.println(se1.lastIndexOf("l")); /*字符串对象调用该方法获得一个当前字符串的子串, 该子串是从当前字符串的startpoint处截取到字符串的末尾所得到的字符串。 字符串对象调用substring(int start ,int end)方法获得一个当前字符串的子串, 该子串是从当前字符串的start处截取到end处所得到的字符串,但不包括end处所对应的字符。*/ String sq1 = new String("HelloWorld"); System.out.println(sq1.substring(5,7)); //用的是索引截取字串 /*字符串对象s调用该方法可以获得一个串对象, 这个串对象是通过用参数newString指定的字符串替换s中由oldString指定字符串而得到的字符串。*/ //例子 srt = "longl" , st2 = srt.replaceAll("l","L") -> LongL String sc1 = new String("WWWWorld"); String sc2 = sc1.replaceAll("W","w"); System.out.println(sc2); /*一个字符串s通过调用方法trim()得到一个字符串对象,该字符串对象是s去掉前后空格后的字符串。 */ String co1 = new String(" hello "); System.out.println(co1); String co2 = co1.trim(); System.out.println(co2); //用java.lang.一些数字的数据类型 可以将数字形式的字符串转换为相应类型的数字 //整型 integer String number1 = new String("125"); int num1 = Integer.parseInt(number1); System.out.println(num1); //浮点型 String number2 = new String("125.254"); //浮点型默认为double型 double num2 = Double.parseDouble(number2); System.out.println(num2); //还有long short byte float 等等 //toString(),一个对象通过调用该方法可以获得该对象的字符串表示。 int sp1 = 5; String opw = Integer.toString(sp1); System.out.println(opw); //stringtokenizer 是字符分割器 可以使用nextoken()逐个获取字符串中的语言符号(单词) StringTokenizer tokenizer = new StringTokenizer("hello world , well come to java!",", "); //指定, 和 (空格) 为分隔符 while(tokenizer.hasMoreTokens()){ System.out.println(tokenizer.nextToken()); } /*public void getChars(int start,int end,char c[],int offset ) 将字符串中从位置start到end-1位置上的字符拷贝的数组c中,并从数组c的offset处开始存放这些字符。 需要注意的是,必须保证数组c能容纳下要被拷贝的字符。 */ String kt1 = "hello,world"; //创建数组的方法 char[] chararray = new char[kt1.length()]; kt1.getChars(0,5,chararray,0); System.out.println(chararray); //打印数组内容 数组的打印方法 for (char ch:chararray){ System.out.println(ch); } //public char[] toCharArray() 字符串对象调用该方法可以初始化一个字符数组, //该数组的长度与字符串的长度相等,并将字符串对象的全部字符拷贝到该数组中。 String lp = "world"; char[] charsarray = lp.toCharArray(); for(char ch : charsarray){ System.out.println(ch); } /*String(byte[],int offset,int length) 该构造方法使用平台默认的字符编码, 用指定的字节数组的一部分,即从数组起始位置offset开始取length个字节构造一个字符串对象。 */ String mp1 = "hello,world"; //先弄个数组 char[] use = mp1.toCharArray(); for(char h : use){ System.out.println(h); }//现在是输出每个字符 //现在组合字符 String use1 = new String(use,0,5); System.out.println(use1); /*public byte[] getBytes() 使用平台默认的字符编码,将当前字符串转化为一个字节数组*/ //就是把每个字符都转换成ascii值然后存到数组中 String ap = "hello,world"; byte[] bit = ap.getBytes(); for(byte cg : bit){ System.out.println(cg); } /*String类创建的字符串对象是不可修改的,也就是说, String字符串不能修改、删除或替换字符串中的某个字符, 即String对象一旦创建,那么实体是不可以再发生变化的*/ /*StringBuffer类能创建可修改的字符串序列, 也就是说,该类的对象的实体的内存空间可以自动的改变大小 ,便于存放一个可变的字符序列。 (相当于字符串变量)*/ StringBuffer a = new StringBuffer("helloworld"); System.out.println(a); //正则表达式是含有一些具有特殊意义字符的字符串,这些特殊字符称作正则表达式中的元字符。 //比如,“\\dhello”中的\\d就是有特殊意义的元字符,代表0到9中的任何一个。 // 字符串“9hello”和“1hello”都是和正则表达式:“\\dhello”匹配的字符串之一。 /*字符串对象调用 public boolean matches(String regex)方法可以判断当前字符串对象是否和参数regex指的正则表达式匹配。*/ String str = "Hello, World!"; boolean isMatch = str.matches("Hello.*"); System.out.println(isMatch); // 结果为 true,因为字符串以 "Hello" 开头 } }
java字符串训练与学习
最新推荐文章于 2024-06-14 15:02:13 发布