RE:JAVA学习-步入String

来源:互联网 发布:java开发文档怎么写 编辑:程序博客网 时间:2024/06/05 02:15

一.文档注释
1.用法:
类 方法 常量
2.作用:
文档注释可以被javadoc翻译并生成为手册
文档注释是功能级注释,用来说明整体功能

二.String有关
1>String是不可变对象
1.1>使用final修饰,不能被继承
1.2>字符串一旦创建,对象无法改变,但字符串引用可以重新赋值
1.3> JVM对字符串有一个优化,字符串常量池
字符串常量池中会缓存所有使用字面量形式创建的字符串
对象,一旦发现再次使用已有的字面量创建字符串时会直接重用已
创建对象.避免内存中出现大量内存一样的字符串对象,
减小内存开销
String str1=”aaa”;
String str2=”aaa”;
System.out.println(str1==str2);

2>indexOf       2.1>int indexOf(String str)  返回值  方法名(参数)    2.2>作用:         查找给定字符串在当前字符串中的位置,若当前字符串        不含有给定内容则返回值为-1
public class String_indexOf {    public static void main(String[] args) {        //          0123456789012345        String str="thinking in JAVA";        System.out.println(str.indexOf("in"));//2        //从指定的位置开始查找        System.out.println(str.indexOf("in",str.indexOf("in")+1));//5        //从后往前找(检索最后一次出现的位置)        System.out.println(str.lastIndexOf("in"));//9    }}
3>substring    3.1>String substring(int start,int end)    3.2>作用:        截取当前字符串的部分内容        (需要注意 java api中有一个特点,通常使用两个数字        表示一个范围时都是"含头不含尾"的.)
public class String_substring {    public static void main(String[] args) {        //          0123456789012        String str="www.baidu.com";        //截取指定区间[前闭后开)        System.out.println(str.substring(4,9));        //从指定位置开始截取        System.out.println(str.substring(4));        System.out.println(getHost(str));        System.out.println(getHost("www.baidu.com.cn"));        String str2="someapp/manager/emplist.action";        System.out.println(str2.substring(str2.lastIndexOf("/")+1));    }    /**     * 返回给定地址的域名     * @param url     * @return     */    public static String getHost(String url){        String str=".";        return url.substring(url.indexOf(str)+1,url.indexOf(str,url.indexOf(str)+1));    }}
4>trim    4.1>void String trim()    4.2>作用:        去除字符串两边的空白字符5>chatAt    5.1>char charAt(int index)    5.2>返回指定下标处对应的字符6>startsWith和endsWith    6.1>boolean startsWith(String str)        boolean endsWith(String str)    6.2>判断当前字符串是否以给定的字符串开始或结尾
public class String_startsWith_endsWith {    public static void main(String[] args) {        String str="thinking in JAVA";        boolean starts=str.startsWith("th");        System.out.println("starts:"+starts);//true        boolean ends=str.endsWith("a");        System.out.println("ends:"+ends);//false    }}
7>toUpperCase和toLowerCase    7.1>String toUpperCase()        String toLowerCase()    7.2>将当前字符串中的英文部分转换为全大写和全小写        String str="只对英文有效javaJAVA";        String upper=str.toUpperCase();        System.out.println(upper);8>valueOf:String 提供一系列重载的valueOf方法(静态方法)    8.1>String String.valueOf(Object o)    8.2>将java其他类型转换为字符串PS:int length()

三.StringBuilder
1>作用:专门用来修改字符串内容的类
2>意义:StringBuilder内部维护一个可变的字符数组,所有操作
均在该数组中完成.速度快,内存消耗小
3>常用方法:
3.1>append(String str) 追加字符串
3.2>insert(int dstOffset,String s) 插入字符串
3.3>delete(int start,int end) 删除字符串
3.4>replace(int start,int end,String str) 替换字符串
3.5>reverse() 字符串反转
4.StringBuffer:
和StringBuilder功能相同,但性能不同
StringBuffer是线程安全的,同步处理的,性能稍慢
StringBuilder是非线程安全的,并发处理的,性能稍快

public class StringBuilderDemo {    public static void main(String[] args) {        String str="Hello";        StringBuilder builder=new StringBuilder(str);        builder.append(",world");        str=builder.toString();        System.out.println(str);        /*         * 01234567890         * Hello,world         */        builder.replace(6,11,"JAVA");        System.out.println(builder.toString());        /*         * 0123456789         * Hello,JAVA         */        builder.delete(0,6);        System.out.println(builder.toString());        builder.insert(0, "what is ");        System.out.println(builder.toString());        builder.reverse();        System.out.println(builder.toString());        if(isHuiWen("radar"))System.out.println("yes");        chineseCharacters();    }     public static boolean isHuiWen(String str){         StringBuilder builder=new StringBuilder(str);         builder.reverse();         if(str.equals(builder.toString())){             return true;         }         return false;     }     public static void chineseCharacters(){         StringBuilder builder=new StringBuilder();         for (char c = '\u4e00', i = 1; c <= '\u9fa5'; c++, i++){             builder.append(c);             if(i%50==0){                 builder.append("\n");             }         }         System.out.println(builder.length());//       System.out.println(builder.length()+"\n"+builder.toString());     }}