zoukankan      html  css  js  c++  java
  • 53.JavaAPI之String类

    String类

    String类描述的是文本字符串序列。  留言   QQ   写日志。

    创建String类的对象的两种方式:

    1. ""直接赋值法
    2. new关键字法

    1.   字符串对象的比较

    String Str = “jack”这个语句会先检查字符串常量池是否存放这个”jack1”这个字符串对象,如果没有存在,那么就会在字符串常量池中创建这个字符串对象,如果存在直接返回该字符串的内存地址值。

    String str3 = new String(“jack”) 该语句会创建两个对象,首先会先检查字符串常量池中存不存在jack这个字符串对象,如果不存在就会创建,如果存在就返回内存地址值。创建了出来之后,new String这个语句就会在堆内存中开辟一个字符串对象。总共两个对象。

    2.   获取方法

    int length()  获取字符串的长度
    char charAt(int index) 获取特定位置的字符 (角标越界)
    int indexOf(String str) 获取特定字符的位置(overload)
    int lastIndexOf(int ch) 获取最后一个字符的位置

    3.    判断方法

    boolean endsWith(String str) 是否以指定字符结束
    boolean isEmpty()是否长度为0 如:“” null V1.6
    boolean contains(CharSequences) 是否包含指定序列 应用:搜索
    boolean equals(Object anObject) 是否相等
    boolean equalsIgnoreCase(String anotherString) 忽略大小写是否相等

    4.    转换方法

    String(char[] value) 将字符数组转换为字符串
    String(char[] value, int offset, int count)
    Static String valueOf(char[] data)
    static String valueOf(char[] data, int offset, int count)
    char[] toCharArray()  将字符串转换为字符数组

    5.    其他方法

    String replace(char oldChar, char newChar) 替换
    String[] split(String regex) 切割
    String substring(int beginIndex) 
    String substring(int beginIndex, int endIndex)截取字串
    String toUpperCase() 转大写
    String toLowerCase() 转小写
    String trim() 去除空格

    6.    练习

    1. 去除字符串两边空格的函数。
    public class Demo1 {
    // 定义一个祛除字符串两边空格的函数
    public static String trim( String str ){
       
       // 0、定义求字串需要的起始索引变量
       int start = 0;
       int end = str.length()-1;
       // 1. for循环遍历字符串对象的每一个字符
       for (int i = 0; i<str.length() ; i++ )
       {
            if ( str.charAt(i) == ' ' )
            {
                 start++;
            }else{
            
                 break;
            }
       }
       System.out.println( start );
       for (; end<str.length() && end >= 0;  )
       {
            if ( str.charAt(end) == ' ' )
            {
                 end--;
            }else{
                 break;
            }
       }
       System.out.println( end );
       // 2. 求子串
       if( start < end ){
         
         return str.substring( start , (end+1) ); 
       }else{
         
         return "_";
       }

      2.获取上传文件名  "D:\20120512\day12\Demo1.java"。

    public static String getFileName2( String path ){
          return path.substring( path.lastIndexOf("\") + 1 );
        }
    }

      3.将字符串对象中存储的字符反序。

    // 将字符串对象中存储的字符反序
        public static String reaverseString( String src ){
        
           // 1. 将字符串转换为字符数组
           char chs[] = src.toCharArray();
           // 2. 循环交换
           for ( int start = 0 , end = chs.length - 1; start < end ; start++,end-- )
           {
               // 3. 数据交换
               char temp = chs[end];
               chs[end] = chs[start];
               chs[start] = temp;
           }
          // 4. 将字符数组转换为字符串
           return new String( chs );
        }

      4. 求一个子串在整串中出现的次数

      

    public static int getCount( String src , String tag ){ 
          // 0. 定义索引变量和统计个数的变量
          int index = 0;
          int count = 0;       
          // 1. 写循环判断
          while ( ( index = src.indexOf(tag) ) != -1 )   // jackjava
          {
           // 2. 求字串
             System.out.println( src );
             src = src.substring( index + tag.length() );   // index 4 + 4 = 8
          System.out.print( src.length() + " : " + index + " :  " + tag.length() );
                   // 3. 累加
             count++;
               }
               return count;

     

    author@nohert
  • 相关阅读:
    momentjs时间格式插件
    TagCanvas 插件
    Vue2.0 探索之路——生命周期和钩子函数的一些理解
    vue.js学习:1.0到2.0的变化(区别)
    dom操作节点之常用方法
    javascript 中 x offsetX clientX screenX pageX的区别
    Vuex详解笔记2
    Vuex详解笔记1
    Vue报错:Uncaught TypeError: Cannot assign to read only property’exports‘ of object’#<Object>‘的解决方法
    CSS技巧和经验列表
  • 原文地址:https://www.cnblogs.com/gzgBlog/p/13591256.html
Copyright © 2011-2022 走看看