String类中的方法

来源:互联网 发布:golang otter 编辑:程序博客网 时间:2024/05/05 06:42
package day13;/** *  * @author zhaocx1 *  */public class StringDemo {public static void main(String[] args)// 主函数,整个函数的切入点{String s1 = "abc";// s1是一个类类型变量,"abc"是一个对象。// 字符串最大特点:一旦被初始化就不可以被更改。String s2 = new String("abc");/* * s1和s2有什么区别: s1在内存中有一个对象 s2在内存中有两个对象 */System.out.println(s1 == s2);System.out.println(s1.equals(s2));// String类复写类Object类中equals方法,该方法用于判断字符串是否相同。// equals用来判断地址值。String a1 = "中国";String a2 = new String("中国");System.out.println(a1 == a2);System.out.println(a1.equals(a2));}}
package day13;/** *  * @author zhaocx1 * 字符串的取出方法及相关内容 *//* * String类使用于描述字符串事物。字符串存放在常量池中 * 那么它就提供了多个方法对字符串进行操作。 *  * 常见的操作有哪些? * “abcd” * 1.获取。 * 1.1字符串中包含的字符数,也就是字符串的长度。 * int length():获取长度    数组也有长度,那是数组的属性,不用带(),字符串是通过方法完成的,需要加(). *  1.2根据位置获取位置上某个字符。 *  char charAt(int index): *  1.3根据字符获取该字符串中在字符串中的位置。 *  int indexOf(int ch):返回的是ch在字符串中第一次出现的位置。 *  int indexOf(int ch, int fromIndex):从fromIndex指定位置开始,获取ch在字符串中出现的位置。 *   *  int indexOf(String str):返回的是str在字符串中第一次出现的位置。 *  int indexOf(String str, int fromIndex):从fromIndex指定位置开始,获取str在字符串中出现的位置。 *  * 2.判断。 *  2.1字符串中是否包含某一个子串。 *     boolean contains(str): *     特殊之处:indexof(str):可以索引第一次出现的位置,如果返回-1,表示str不再字符串中存在。 *     所以,也可以用于对指定判断是否包含。 *     if(str.indexOf("aa")!=-1) *      *     而且该方法既可以判断,也可以获取出现的位置。contains值判断好一些,indexOf同时好一些。 *      *  2.2字符串中是否有内容。 *     boolean isEmpty():原理就是判断长度是否为0. *  2.3字符串是否是以指定内容开头。 *     boolean startsWith(str); *  2.4字符串是否是以指定内容结尾。 *  2.5判断字符串内容是否相同,复写了Object类中的equals方法。 *  boolean equals(str); *  2.6判断内容是否相同,并忽略大小写。 *  boolean equalsIgnoreCase(); *   *3.转换。 *  3.1将字符数组转成字符串。 *     构造函数:String(char[]) *            String(char[],offset,count):将字符数组中的一部分转成字符串。 *     静态方法: *            static String copyValueOf(char[]); *            static String copyValueOf(char[] data,int offset,int count): *            static String valueOf(char[]);  *  3.2将字符串转成字符数组。** *       char[] toCharArray(): *  3.3将字节数组转成字符串。 *  String(byte[]) *      String(byte[],offset,count):将字节数组中的一部分转成字符串。 *  3.4将字符串转成字节数组。 *      byte[] getByte(): *  3.5将基本数据类型转成字符串。 *      String valueOf(int) *      String valueOf(double) *       *特殊:字符串和字节数组在转换过程中,是可以指定编码表的。 */public class StringDemo1 {public static void main(String[] args) {//主函数 ,整个函数的切入点method_trans();//调用方法method_is();method_get();}public static void method_trans() {//定义一个静态方法char[] arr = { 'a', 'b', 'v', 'x', 's', 'f' };//声明一个字符数组String s = new String(arr);//将字符数组转成字符串sop("s=" + s);//打印字符串内容}public static void method_is() {//顶以一个静态方法String str = "ArrayDemo.java";//定义一个字符串// 判断文件名称是否是Array单词开头。sop(str.startsWith("Array"));// 判断文件名称是否是.java的文件。sop(str.endsWith(".java"));// 判断文件中是否包含Demo.sop(str.contains("Demo"));}public static void method_get() {String str = "abcdeakpf";// 长度sop(str.length());// 根据索引获取字符。sop(str.charAt(4));// 当访问到字符串中不存在的角标时会发生StringIndexOutOfBoundsException.// 根据字符获取索引。sop(str.indexOf('a', 3));// 没有找到,返回-1.// 反向索引一个字符出现位置。sop(str.lastIndexOf("a"));} /* * String s1="abc"; String s2=new String("abc"); String s3="abc"; * System.out.println(s1==s2); System.out.println(s1==s3); } */public static void sop(Object obj) {//定义一个打印方法,接受的是Object类,基本数据类型的提升,String和int都可以打印。System.out.println(obj);}}
package day13;/** *  * @author zhaocx1 *  *//* * 4.替换 String replace(oldchar,newchar);5.切割 String[] split(regex);6.子串。 String * substring(begin); String substring(begin,end);7.转换,去除空格,比较。 7.1将字符串转成大写或者小写。 * String toUpperCase(); String toLowerCase(); 7.2将字符串两端的多个空格去除。 String trim(); * 7.3对两个字符串进行自然顺序的比较。 in compareTo(string); */public class StringDemo2 {public static void main(String[] args) {// 主函数,整个函数的切入点method_7();// 调用静态方法method_sub();method_split();method_replace();}public static void method_7() {// 定义静态方法String s = "    Hello Java   ";// 声明一个字符串sop(s.toLowerCase());// 将字符串内容以小写形式打印出来sop(s.toUpperCase());// 将字符串内同以大写形式打印出来sop(s.trim());// 取出字符串前后的空格String s1 = "abc";String s2 = "aaa";sop(s1.compareTo(s2));// 对两个字符串进行比较}public static void method_sub() {String s = "abcdefg";sop(s.substring(2));// 从指定位置开始到结尾获取字符串内容。如果角标不存在,会出现字符串角标越界异常。sop(s.substring(2, 4));// 包含头,不包含尾。s.substring(0,s.length());}public static void method_split() {String s = "zhangsan,lisi,wangwu";String[] arr = s.split(",");// 以某种形式对字符串内容进行切割for (int x = 0; x < arr.length; x++) {sop(arr[x]);}}public static void method_replace() {String s = "hello java";// String s1 = s.replace('q', 'n');//如果要替换的字符不存在,返回的还是原串。String s1 = s.replace("java", "world");// 对字符串内容进行替换sop("s=" + s);sop("s1=" + s1);}public static void sop(Object obj) {// 定义打印方法,参数为Objec类型System.out.println(obj);}}
package day13;/** *  * @author zhaocx1 * String类中的其它方法 */public class StringDemo3 {public static void main(String[] args) {//主函数,整个函数的切入点method_is();//method_trans();//调用静态方法}public static void method_trans() {//定义一个静态方法char[] arr = { 'a', 'd', 'c', 'b' };//声明一个字符数组String s = new String(arr, 1, 3);// 从脚标为1的位置开始取3个sop("s" + s);//打印获取的字符串内容String s1 = "sbcnff";//声明一个字符串char[] chs = s1.toCharArray();//将字符串转换成字符数组for (int x = 0; x < s1.length(); x++)sop("chs=" + chs[x]);//对字符数组进行遍历,打印字符数组内容}public static void method_is() {//String s1="abcnuhoabsnbf";// sop(s.length());//获取字符串的长度// sop(s.charAt(4));//获取字符串某角标的元素//sop(s1.lastIndexOf('n'));//从最后 一个角标开始往前数,某元素首次出现的角标位置// sop(s.indexOf('n',3));//从某一个角标位置开始,获取某一个元素的角标String s = "ArrayDemo.java";//声明一个字符串sop(s.isEmpty());//判断字符串是否为空sop(s.startsWith("Arr"));//判断字符串的开头sop(s.contains("De"));//判断字符串是否包含某些字符串sop(s.endsWith(".java"));//判断字符串的结尾}public static void sop(Object obj) {//定义打印方法,接受的参数是Object类System.out.println(obj);}}
package day13;/** *  * @author zhaocx1 * 练习:取出字符串两端的空格 */class StringTest1 {public static void main(String[] args) {//主函数,整个函数的切入点String s = "    ab cd     ";//定义一个两端带有空格的字符串sop("(" + s + ")");//打印没有操作前的字符串内容s = myTrim(s);//切割空格sop("(" + s + ")");//打印操作后的字符串}// 练习 一,去除字符串两端空格。public static String myTrim(String str) {//定义一个静态方法,返回的是字符串。传递的参数内容必须是字符串int start = 0, end = str.length() - 1;while (start <= end && str.charAt(start) == ' ')start++;while (start <= end && str.charAt(end) == ' ')end--;return str.substring(start, end + 1);}public static void sop(String str) {//定义一个打印方法,接受的参数内容必须是Object类System.out.println(str);}}
package day13;/** *  * @author zhaocx1 *  */// 练习二:将字符串进行反转。/* * 思路:1.将字符串变成数组。2.对数组反转。3.将数组变成字符串。 */class StringTest2 {public static void sop(String str) {System.out.println(str);}public static void main(String[] args) {String s = "    ab cd     ";// 定义一个字符串sop("(" + s + ")");// 输出字符串内容sop("(" + reverseString(s) + ")");//开始对字符串进行反转}public static String reverseString(String s) {// 字符串便数组。char[] chs = s.toCharArray();// 反转数组。reverse(chs);// 将数组变成字符串。return new String(chs);}private static void reverse(char[] arr) {// 定义一个静态的反转方法,并以字符数组作为参数for (int start = 0, end = arr.length - 1; start < end; start++, end--) {swap(arr, start, end);// 调用交换符合条件的元素的位置的方法}}// 定义一个方法用来交换符合条件的元素的位置private static void swap(char[] arr, int x, int y) {char temp = arr[x];arr[x] = arr[y];arr[y] = temp;}}
package day13;/** *  * @author zhaocx1 *  *//* * StringBuffer是一个容器,初始化之后可以对字符串内容进行修改。 String不可以。 * * 是字符串缓冲区,是一个容器。 特点: * 1.长度是可变化的。 * 2.可以直接操作多个数据类型。 * 3.最终通过toString方法变成字符串。 *  * C create  U update R read  D delete * 1.存储。 *    StringBuffer append():指定数据作为参数添加到已有数据结尾处。 *    StringBuffer insert(index,数据):可以将数据插入到指定Index位置。 * 2.删除。 *    StringBuffer delete(start,end):删除缓冲区中的数据,包含start,不包含end. *    StringBuffer deleteCharAt(index):删除指定位置的字符。 * 3.获取。 *    char charAt(int index) *    int indexOf(String str) *    int lastIndexOf(String str) *    String substring(int start,int end) * 4.修改。 *    StringBuffer replace(start,end,String) *             void setCharAt(int index,char ch) * 5.反转。 *    StringBuffer reverse(); * 6.將緩衝區中指定數據存儲到指定字符數組中。 *    void getChars(int srcBegin,int srcEnd dst,int dstBegin) *  *JDK1.5版本之後出現了StringBuilder. *StringBuffer是線程同步的。 *StringBuilder是縣城不同步。 * *以後開發,建議使用StringBuilder. *升級三個因素: *1.提高效率。 *2.簡化書寫。 *3.提高安全性。 */public class StringBuffer1 {public static void main(String[] args) {method_del();method_update(); }public static void method_update() {//定义一个容器,并对容器进行初始化值StringBuilder sb = new StringBuilder("abcde");//将初始化的值进行替换sb.replace(1, 4, "java");        //在指定位置插入一个字符sb.setCharAt(2, 'k');       //输出字符串内容sop(sb.toString());}public static void method_del() {//定义一个容器,并对容器进行初始化值StringBuffer sb = new StringBuffer("abcde");//对指定角标位置的元素进行删除sb.delete(1, 3);//删除全部元素sb.delete(0, sb.length());//对指定角标位置的元素进行删除sb.deleteCharAt(2); //输出字符串内容sop(sb.toString());}public static void method_add() {//定义一个容器,用于存储信息StringBuffer sb = new StringBuffer();        //将指定数据添加到数据结尾处sb.append("abc").append(true).append(34);// StringBuffer sb1=sb.append(34);// sop("sb=sb1:"+(sb==sb1));        //在指定位置插入某个元素sb.insert(1, "qq");sop(sb.toString());// abctrue34// sop(sb.toString());}public static void sop(String str) {// 定义一个静态打印方法,参数可接受的类型为字符串类型System.out.println(str);}}
package day13;/** *  * @author zhaocx1 *  *//* *基本數據類型對象包裝類。 *   基本數據類型                                      引用數據類型 * byte(小寫就是關鍵字、類型)  Byte(大寫就是類) *    short                 Short *    int                   Integer *    boolean               Boolean *    float                  Float *    double                 Double *    char                   Character *     *基本數據類型對象包裝類的最常見作用。 *就是用於基本數據類型和字符串類型之間做轉換。 * *基本數據類型轉成字符串。 *    基本數據類型+"" *    基本數據類型.toString(基本數據類型值); *    如:Integer.toString(34);//將34整數變成“34”。 *字符串轉成基本數據類型。 *   基本數據類型包裝:xxx a=Xxx.parseXxx(String); *   int a=Integer.parseInt("123"); *   double b=Bouble. parseDouble("12.23"); *    *   boolean b=Boolean.parseBoolean("true"); *    *十進制轉成其它進制: * toBinaryString(); * toHexString(); * toOctalString(); *其它進制轉成十進制: * parseInt(string,radix); */public class BaseDataBaoZhuangDemo {public static void sop(String str){System.out.println(str);}public static void main(String[] args){//證書類型的最大值//sop("int max:"+Integer.MAX_VALUE);//將字符串轉成整數。int num=Integer.parseInt("123");//必須傳入數字格式的字符串。long x=Long.parseLong("123");sop("num="+(num+4));sop(Integer.toBinaryString(-6));//十进制转化成二进制sop(Integer.toHexString(60));//十进制转化成十六进制int a= Integer.parseInt("110",2);//将二进制转化成十进制sop("a="+a);} }








0 0
原创粉丝点击