Java---->String的基本操作

来源:互联网 发布:电脑编程哪儿工资高 编辑:程序博客网 时间:2024/06/06 12:27
<pre name="code" class="java">public class Demo1 {public static void main(String[] args) {// TODO Auto-generated method stubnew Demo1();}public Demo1(){////String 实例化的两种方法//String s = "You are the best";//String ss = new String("you are the best");//String sss = "you are" + " the best";////System.out.println("s : " + s);//System.out.println("ss :" + ss);//System.out.println("sss : " + sss);//////判断字符串是否相等用    equals//System.out.println("调用 equals 的执行结果");//boolean b1 = (s.equals(ss));//System.out.println("b1 == " + b1);//boolean b2 = (ss.equals(sss));//System.out.println("b2 == " + b2);//////equalsIgnoreCase 不区分大小写比较//System.out.println("调用 equalsIgnoreCase 的执行结果");//boolean b5 = (s.equalsIgnoreCase(ss));//System.out.println("b5 == " + b5);//boolean b6 = (ss.equalsIgnoreCase(sss));//System.out.println("b6 == " + b6);//////使用比较运算符   ==////java中   == 是判断两个对象的堆内存是否相等,属于地址的数值相等的比较,并不是关于字符串内容// boolean b3 = (s == ss);//System.out.println("b3 == " + b3);//boolean b4 = (s == sss);//System.out.println("b4 == " + b4);//////引用匿名对象//String str = "Hello";////采用"字符串".equals(字符串对象);此时的equals()可以自动区里null问题,正常判断//System.out.println("Hello".equals(str));//注意与上一个的区别//如果st中没有输入用户名,则会提示NullPointerException警告//String st = null;//System.out.println(st.equals("Hello"));/* * String类的对象在实例化的时候采用不同的方式,开辟的内在空间也不同 * 直接赋值:只开辟一块堆内存空间,而且保存的字符串内容自动入池,以供其他内容相同的字符串使用 * 构造方法:开辟两块堆内存空间,有一块将变成垃圾,并且字符串的内容无法自动入池,但是可以使用String类的intern()方法手工入池 *///采用直接赋值法创建字符串时的内存分配//String a = null,b = null,c = null;//a = "Hello";////如果已经采用直接复制方式开辟了内存空间,再次采用同一方式的时候会指向同一块内存//b = "Hello";//c = a;//System.out.println(a == b);//System.out.println(a == c);//System.out.println(b == c);//String a = "Hello";//String b = new String("Hello").intern();//String c = "Hello";//String d = new String("Hello");//System.out.println(a == b);//System.out.println(a == c);//System.out.println(b == c);//System.out.println(a == d);//String对象一旦声明则不可改变//由下面的例子可以看出。输出的内容改变了,但是字符串中的内容并没有变化,改变的只是String类对象的引用,并且会产生大量的垃圾,这种方法应该尽量避免,少使用//String str = "Hello";//str += " World";//str += "!!";//System.out.println(str);/* * 字符串与字符数组之间的转化及相关操作 * charAt();返回指定索引位置上的字符串内容 * toChatArray();将字符串变为字符数组 * new String();将字符数组转化为字符串 * new String(a,b,c);将字符数组a从第b号元素开始,输出连续的c个(注意一定不要越界) */String str = "helloworld";//输出字符串中第4个位置的元素,从0开始计数System.out.println(str.charAt(4));//将字符串转化为字符数组char a[] = str.toCharArray();for(int i = 0;i < a.length;i ++){System.out.print(a[i] + ",");//小写和大写的ASCII值差32a[i] -= 32;}System.out.println();System.out.println("将全部字符数组转化为字符串" + new String(a));//取得部分内容的时候需要设置起始点和取得的长度,注意字符串是从0开始计数的System.out.println("将部分字符数组变为字符串" + new String(a,5,4));}}


package Test1;public class Demo2 {public static void main(String[] args) {// TODO Auto-generated method stubnew Demo2();}public Demo2(){String str = "hellojava";//将字符串转化为byte数组byte[] a = str.getBytes();//小写变大写for(int i = 0;i < a.length;i ++)a[i] -= 32;//将字节数组转化为字符串输出System.out.println(new String(a));//将字节数组a从第2个元素开始的3个元素转化为字符串输出System.out.println(new String(a,2,3));}}


/* * 注意在访问的时候一定要防止数组越界 * 1.字符串查找方法 * 判断字符串中子串是否存在时,返回的是boolean值, * 判读某字符出现的位置时,返回字符在字符串中出现的第一个位置的索引值,如果没有找到,则返回-1 *  * 2.字符串替换 *  * 3.字符串截取 * 从一个指定的字符串中取出部分的内容 *  * 4.字符串拆分 * 将一个字符串按照指定的字符串拆分成若干个字符串,返回的是一个字符型数组 * 注意下面几种特殊的用字符串拆分的方法 * str.split("\\."); * str.split("\\|"); * str.split("\\\\");//用\作为分隔符 * 有多个分隔符的时候 * str.split("a|b");//以字符串a或者b进行分割 *  * 5.补加 * s.length(); * s.trim.length();//取出字符串前后的空格后字符串的长度 * s.toUpperCase();//全部变为大写 * s.toLowerCase()//所有字母都转化为小写 * s.concat(str);//字符串连接 */public class Demo3 {public static void main(String[] args) {// TODO Auto-generated method stubnew Demo3();}public Demo3(){String str = "**Hello$$World##";//1.//查找字符串是否存在if(str.contains("Hello")){System.out.println("存在");}//查找某一个字符是否存在if(str.indexOf("r") != -1){System.out.println("内容存在,字符串位置:" + str.indexOf("r"));}//从指定位置开始查找,判断某个字符是否存在if(str.indexOf("o", 6) != -1)System.out.println("内容存在,字符串位置为:" + str.indexOf("o", 6));//从结尾位置开始从后往前查找if(str.lastIndexOf("W") != -1)System.out.println("存在" + str.lastIndexOf("W"));if(str.lastIndexOf("W",12) != -1)System.out.println("存在::" + str.lastIndexOf("W",12));//判断字符串是否依指定位置开头System.out.println(str.startsWith("**"));//从指定位置开始判断是否以指定位置开头System.out.println(str.startsWith("$$", 7));//判断是否以指定位置结尾System.out.println(str.endsWith("##"));//2.//替换字符串中出现的所有的指定字符System.out.println(str.replace("o", "O"));//替换字符串中出现的所有子串System.out.println(str.replaceAll("o", "&&&&&&"));//替换字符串中第一次出现的字符子串System.out.println(str.replaceFirst("o", "O"));//3.//截取从第5号位置开始到结尾的子串System.out.println(str.substring(5));//截取从5位置到8位置的字符串System.out.println(str.substring(5,8));System.out.println();System.out.println();System.out.println();//4.String s = "hello world hello java";//将字符串按照空格拆分String []a = s.split(" ");for(int i = 0;i < a.length; ++ i)System.out.println(a[i]);System.out.println("----------");//将字符串拆分成指定元素个数的字符数组String []aa = s.split(" ", 3);for(int i = 0;i < aa.length;i ++)System.out.println(aa[i]);String ss = "Hello Java..... ";//判断字符串的长度System.out.println(ss.length());System.out.println(ss.trim().length());//判断字符串是否为空System.out.println("".isEmpty());System.out.println(ss.isEmpty());//字符串字符全部变为大写System.out.println(ss.toUpperCase());//所有字母都转化为小写System.out.println(ss.toLowerCase());//字符串连接System.out.println(ss.concat("Hello World....."));}}



0 0