zoukankan      html  css  js  c++  java
  • java笔记之string常用方法<二>

    1、 获取方法

    int length()  获取字符串的长度,

    char charAt(int index) 获取特定位置的字符 (角标越界),

    int indexOf(String str) 获取特定字符的位置(overload),查找子串第一次出现的索引值,若没找到则返回-1表示,

    int lastIndexOf(int ch) 获取最后一个字符的位置,查找子串最后一次出现的索引值,若没找到则返回-1表示。

    public class Demo02 {
            public static void main(String[] args) {
                String str="abc中国ab中国";
                System.out.println("字符的个数:"+str.length());
                System.out.println("根据索引值获取对应字符:"+str.charAt(1));
                System.out.println("查找子串第一次出现的索引值:"+str.indexOf("ab"));
                System.out.println("查找子串最后一次出现的索引值:"+str.lastIndexOf("中国"));
            }
    }

    运行结果:

    字符的个数:9
    根据索引值获取对应字符:b
    查找子串第一次出现的索引值:0
    查找子串最后一次出现的索引值:7

    2、判断方法

    boolean endsWith(String str) 是否以指定字符结束,

    boolean isEmpty()是否长度为0,

    boolean contains(CharSequences) 是否包含指定序列 应用:搜索,

    boolean equals(Object anObject) 是否相等,

    boolean equalsIgnoreCase(String anotherString) 忽略大小写是否相等。

    public class Demo03 {
            public static void main(String[] args) {
                String str="Demo.java";
                System.out.println("是否以指定字符串开始:"+str.startsWith("De"));
                System.out.println("是否以指定字符串结束:"+str.endsWith("java"));
                System.out.println("判断字符串内容是否为空:"+str.isEmpty());
                System.out.println("判断字符串是否包含指定内容:"+str.contains("emo"));
                System.out.println("判断2个字符串内容是否一致:"+"DEmo.java".equals(str));
                System.out.println("判断2个字符串内容是否一致(忽略大小写比较):"+"DeMO.JaVa".equalsIgnoreCase(str));
                
            }
    }

    运行结果:

    是否以指定字符串开始:true
    是否以指定字符串结束:true
    判断字符串内容是否为空:false
    判断字符串是否包含指定内容:true
    判断2个字符串内容是否一致:false
    判断2个字符串内容是否一致(忽略大小写比较):true

     3、转换方法

    String(char[] value) 将字符数组转换为字符串,

    String(byte [] value)将字节数组转化为字符串,

    char[] toCharArray()  将字符串转换为字符数组,

    byte [] getBytes()将字符串转化为字节数组。

    public class Demo03 {
            public static void main(String[] args) {
                String str="Demo.java";
                char [] buf=str.toCharArray();
                System.out.println("字符串转化为字符数组:"+Arrays.toString(buf));
                byte [] buf2=str.getBytes();
                System.out.println("字符串转为字节数组:"+Arrays.toString(buf2));
            }
    }

    输出结果:

    字符串转化为字符数组:[D, e, m, o, ., j, a, v, a]
    字符串转为字节数组:[68, 101, 109, 111, 46, 106, 97, 118, 97]

    4、基本数据型态转换成 String 

    String 类别中已经提供了将基本数据型态转换成 String 的 static 方法 也就是 String.valueOf() 这个参数重载的方法 

    有下列几种 
    String.valueOf(boolean b) : 将 boolean 变量 b 转换成字符串 
    String.valueOf(char c) : 将 char 变量 c 转换成字符串 
    String.valueOf(char[] data) : 将 char 数组 data 转换成字符串 
    String.valueOf(char[] data, int offset, int count) : 将 char 数组 data 中 由 data[offset] 开始取 count 个元素 转换成字符串 
    String.valueOf(double d) : 将 double 变量 d 转换成字符串 
    String.valueOf(float f) : 将 float 变量 f 转换成字符串 
    String.valueOf(int i) : 将 int 变量 i 转换成字符串 
    String.valueOf(long l) : 将 long 变量 l 转换成字符串 
    String.valueOf(Object obj) : 将 obj 对象转换成 字符串, 等于 obj.toString() 

    比如:

    int c1=41254435;
    String str1=String.valueOf(c);
    System.out.println(str1);

    char c2[]={'a','c','v','b'};

    String str2=String.valueOf(c2);

    此时输出的str即为字符串:str1 :41254435。

                 str2 :acvb

    其他类型就不举例子了,大家可以试试。

    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() 去除空格

    String concat() 字符串拼接

    public class String02 {
    
        public static void main(String[] args) {
            String string01="大-家-一-起-玩-游-戏";
            String [] str01= string01.split("-");//依据-对字符串进行切割,返回字符串数组
            System.out.println("切割返回的字符串数组为:"+Arrays.toString(str01));
            String string02="   [HeLlo]   ";
            String str02=string02.substring(5,6);//包头不包尾,
            System.out.println("从指定索引处截取:"+str02);
            System.out.println("转化为大写:"+string02.toUpperCase());
            System.out.println("转化为大写:"+string02.toLowerCase());
            System.out.println("去除前后空格: "+string02.trim());
            System.out.println("替换后的内容是:"+string02.replace("o","o world"));
            //将0替换为0 hello ,此处是char类型的。为何传入字符串依据没报错  

          String s1="lucy ";

          String s2="allen";

          s1=s1.concat(s2);//等价于 s1=s1+s2,都可以将2个字符串拼接到一块,这一点2这功能相同。 但是 + 还可以将 字符串与非字符串(比如数字),拼接在一起,成为字符串

          System.out.println(s1);

        }
    }

    输出结果:

    切割返回的字符串数组为:[大, 家, 一, 起, 玩, 游, 戏]
    从指定索引处截取:e
    转化为大写: [HELLO]
    转化为大写: [hello]
    去除前后空格: [HeLlo]
    替换后的内容是: [HeLlo world]

    lucy allen

    Q:String replace(char oldChar, char newChar) 此处是char类型的。为何传入字符串依据没报错

    A:string.replace(CharSequence target, CharSequence replacement);因为多态的关系,CharSequence接口有string的实现类。所以传入string类型的依旧没报错。


    6、String方法的练习
    6.1.自定义string类的trim方法。去除字符串两边空格的函数。
    public class String03 {
        public static void main(String[] args) {
            String aString="   fsdaf     ";
            System.out.println("自定义输出的结果为:  "+Mytrim(aString));
        }
        public static String Mytrim(String str) {
            char []c=str.toCharArray();
            int startindex =0;//定义开始索引值
            int endindex =c.length-1;//定义结束的索引值
            while(true){    
                if (c[startindex]==' ') {
                        startindex++;                    
                    } else {
                        break;
                }
            }
            //一直遍历,直到c[startindex]的值不为空,跳出循环
            while(true){
                
                if (c[endindex]==' ') {
                        endindex--;                    
                    } else {
                        break;
                }
            }
            return str.substring(startindex, endindex);    //使用string的substring方法返回 
        }
    }

    输出结果:

    自定义输出的结果为:fsda

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

    public class String04 {
        public static void main(String[] args) {
                String string="D:\20120512\day12\Demo1.java";
                string=fielName01(string);
                System.out.println("方法一输出的路径:"+string);
                fielName02(string);            
        }
        public static String fielName01(String string){//方法一根据最后一次出现的次数进行截取
            int last=string.lastIndexOf("\");
            return  string.substring(last+1);
        }
        public static void fielName02(String string){//方法一利用string的切割方法
            String [] str=string.split("\\");    
            int last =str.length-1;
            System.out.println("方法二输出的路径:"+str[last]);    
        }
        
    }

    输出结果:

    方法一输出的路径:Demo1.java
    方法二输出的路径:Demo1.java

    6.3 求一个子串出现的次数

    public class String04 {
        public static void main(String[] args) {
                String string="D:\20120512\day12\Demo1.java";
                int count =getCount(string, "12");
                System.out.println(count);
    }
    
    public static int getCount( String src , String tag ){ 
              // 0. 定义索引变量和统计个数的变量
              int index = 0;
              int count = 0;       
              // 1. 写循环判断
              while ( ( index = src.indexOf(tag) ) != -1 ) {  // jackjava  
                   src = src.substring( index + tag.length() );   // index 
                         count++;
                   }
                   return count;
        }
    }

    输出结果:3

     
  • 相关阅读:
    行内元素知识点
    WPF可视化控件打印
    C#模拟网站用户登录
    不同版本的浏览器代理编码
    WPF弹出对话确认框
    MSDN中HttpWebRequest/HttpWebResponse用法
    C#Http编程
    WPF ICommand 用法
    详述.NET里class和struct的异同
    WPF页面切换及弹窗
  • 原文地址:https://www.cnblogs.com/AllenRandolph/p/6935492.html
Copyright © 2011-2022 走看看