RE:JAVA学习-步入String

一.文档注释
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());
     }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值