Java菜鸟学习笔记--常用类篇(一):String,StringBuffer类

来源:互联网 发布:千千秀字软件 编辑:程序博客网 时间:2024/06/06 20:07

String 与StringBuffer类


1.String类是不可变字符类,一个对象初始化并且赋值以后,存的值就是固定的了,所以不能直接对里面的字符串进行增删改查,只能将值从内存中取出来。

2.StringBuffer类是可变字符,可以对对象内存的字符串直接进行增删插查等操作,但是声明时候要以标准类的初始化方法构造。



String 常用方法实例.


1.常用方法实例

//1.String是不可变字符//2.String常用构造方法//3.String常用方法package me.string;public class TestString{public static void main(String[] args){String s1="Java";String s2="Java";String s3="new";System.out.println(s1==s2);//输出true//因为“Java”分配在常量值,而s1直接指向常量值的Java,JVM做了优化,如果常量池有Java直接s2也指向它String s4=new String("Java");String s5=new String("Java");System.out.println(s4==s5);//输入false,没有指向同一个内存地址System.out.println(s4.equals(s5));//true//equal()是Object方法,当时String类已经复写,判断依据是存储的字符串是否一样String s6="Hello Java ,I am a Coder";//探测是否为空的方法System.out.println(s6.isEmpty());//输出false//查找有Java这个字符的第一个位置System.out.println(s6.indexOf("Java"));//输出6//返回长度的方法System.out.println(s6.length());//替换字符方法String s7=s6.replace(" ","_");//返回替换操作后的字符串System.out.println(s6);//Hello Java ,I am a CoderSystem.out.println(s7);//Hello_Java_,I_am_a_Coder//替换字符串中的所有某个字符String s8=s6.replace("a","*");System.out.println(s8);// Hello J*v* ,I *m * CoderString s9=s6.replaceAll("a","X");System.out.println(s9);// Hello JXvX ,I Xm X Coder//判断是否十一某个单词开头的字符串System.out.println(s6.startsWith("Hello"));// true//静态方法,直接以字符串形式返回输入的System.out.println(String.valueOf("value"));// valueSystem.out.println(String.valueOf(999));//999}


package me.string;public class TestString{public static void main(String[] args){//求数字长度的方法int i1 =14565454;String s1=String.valueOf(i1);System.out.println(i1);System.out.println("i1的长度为 "+s1.length());//以空格为条件 拆分子串String s2="i am super Man";//按照空格分割,返回字符串数组String[] ss=s2.split(" ");for(int i=0;i<ss.length;i++){System.out.println(ss[i]);}/*输出:14565454i1的长度为 8iamsuperMan*///}}





2.编写一个程序,输出字符串中大写英文字母个数,小写英文字母个数,非英文字母个数


//1.2.编写一个程序,输出字符串中大写英文字母个数,小写英文字母个数,非英文字母个数package me.string;public class TestString{public static void main(String[] args){//法一:用toCharArray()转成字符数组String s1="Az1df a d adjf ladDJL FAK jdd33uo o DJd";char[] coco=s1.toCharArray();int lowercase=0;int uppercase=0;int others=0;for(int i =0;i<coco.length;i++){//System.out.println(coco[i]);if(( 'A'<=coco[i]) &&(coco[i]<='Z')){uppercase++;}else if(('a'<=coco[i]) &&(coco[i]<='z')){lowercase++;}else{others++;}}System.out.println("uppercase "+uppercase);System.out.println("lowercase "+lowercase);System.out.println("others "+others);/*输出uppercase 9lowercase 19others 11*///法二: 用charAt()拿出字符比较lowercase=0;uppercase=0;others=0;char temp;for(int i =0;i<s1.length();i++){temp=s1.charAt(i);if(( 'A'<=temp) &&(temp<='Z')){uppercase++;}else if(('a'<=temp) &&(temp<='z')){lowercase++;}else{others++;}}System.out.println("uppercase "+uppercase);System.out.println("lowercase "+lowercase);System.out.println("others "+others);/*输出uppercase 9lowercase 19others 11*///这个方法效率比较高//方法三:用indexOf()查找lowercase=0;uppercase=0;others=0;char the;String sU="ABCDEFGHIJKLMNOPQRSTUVWXYZ";String sL=sU.toLowerCase();//查需每个提出来的额字符再不在大小写表里面,在的话就计数for(int i = 0;i < s1.length();i++){the =s1.charAt(i);//indexOf(参数)默认返回第一个字符位置,找不倒返回 -1if(sU.indexOf(the) != -1){uppercase++;}else if (sL.indexOf(the) != -1){lowercase++;}else{others++;}}System.out.println("uppercase "+uppercase);System.out.println("lowercase "+lowercase);System.out.println("others "+others);/*输出uppercase 9lowercase 19others 11*///用法三结合了 charAt(位置参数) indexOf(查找字符参数) //方法四:用Character.isLowerCase()方法!!!lowercase=0;uppercase=0;others=0;for(int i = 0;i < s1.length();i++){//Character.isLowerCase()可以判断是否为大或小写if(Character.isLowerCase( s1.charAt(i) ) ){lowercase++;}else if (Character.isUpperCase( s1.charAt(i) )){uppercase++;}else{others++;}}System.out.println("uppercase "+uppercase);System.out.println("lowercase "+lowercase);System.out.println("others "+others);/*输出uppercase 9lowercase 19others 11*///}}


2.编写一个程序,输出一个字符串中,某个字符串出现的次数


//2.编写一个程序,输出一个字符串中,某个字符串出现的次数package me.string;public class TestString{public static void main(String[] args){//方法一:用Split()拆分String s1="javadkfjkaldjfoejekajfavjavaajfavajavajldkfjaojfava45df4 a4f";// 创建数组记录按java拆分好的String[]  s2=s1.split("java"); //如果有1个java 就拆成2个,2个就拆成3个数组..依次~~int number=s2.length-1;System.out.println("有 "+ number +" 个 java");//用indexOf()找到第一个位置,然后在用用split}}



StringBuffer 方法实例.



//1.StringBuffer类为可变字符 //2.StringBuffer可以对字符串进行修改//3.String对象和 StringBuffer类 实现 s1=s1+s2;内存实现不同//4.StringBuffer 的增加 删除 插入功能package me.stringbuffer;public class TestStringBuffer{public static void main(String[] args){//1.String StringBuffer实现字符串拼接String s1="Hello";String s2=" Java";s1=s1+s2;System.out.println(s1);/*输出:Hello Java*///因为String是不可变字符串,所以这个操作先取出 s1,s2原内存中的值,然后放入新内存区域实现拼接//StringBuffer ss1="Hello ";//编译错误,不能这样初始化StringBuffer ss1=new StringBuffer("Hello ");//StringBuffer ss2="Java";StringBuffer ss2=new StringBuffer("Java");//ss1=ss1+ss2;编译错误,不能这样操作System.out.println(ss1);//输出Hello//这个方法实现在ss1后面拼接如ss2ss1.append(ss2);ss2.append("/").append("me").append("/").append("code");/*由于append方法返回对象,所以可以进一步又调用方法*/System.out.println(ss1);//Hello JavaSystem.out.println(ss2);//Java/me/code//2.用StringBuffer删除StringBuffer ss3=new StringBuffer("abcdefg");ss3.delete(0,3);System.out.println(ss3);//defg//3.插入功能ss3.insert(0,"xxxx");System.out.println(ss3);//xxxxdefg//4.字符串反转功能ss3.reverse();System.out.println(ss3);//gfedxxxx}}




作者:YangGan
出处:http://blog.csdn.net/incyanggan
本文基于署名 2.5 中国大陆许可协议发布,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名Yanggan(包含链接).



原创粉丝点击