博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
String类中常用的操作
阅读量:5141 次
发布时间:2019-06-13

本文共 8505 字,大约阅读时间需要 28 分钟。

一、获取:

  1、获取字符串的长度(注意是方法,不是跟数组的属性一样的) 

    int length();

1 public static void getLength(){2     String s = "java01";3     int len = s.length();4     System.out.println(len);5 }

 

 

  2、根据位置,获取该位置的那一个字符(只能是单个字符)   

    char charAt(int index);

1 //根据指定位置获取对应的那个字符,只能是一个字符不能是字符串2 public static void getChar(){3      String s1 = "java01";4      char ch = s1.charAt(3);5      System.out.println(ch);6     //s1.charAt(45);当访问到字符串中不存在的角标是会发生StringIndexOutOfBoundsException,即字符串角标越界异常7 }

  

 

  3、根据字符或字符串获取索引,即根据字符或字符串获取该字符或字符串在整个字符串中的位置,如果字符串中没有该字符或字符串会返回-1

    int indexOf(int ch):返回的是ch在字符串中第一次出现的位置

    int indexOf(int ch,int fromIndex):从fromIndex指定位置开始查找,获取ch在字符串中出现的位置

    int indexOf(String str):返回的是str在字符串中第一次出现的位置

    int indexOf(String str,int fromIndex):从fromIndex指定位置开始查找,获取str在字符串中出现的位置

1 public static void getIndexOf(){2     String s = "javascript";3     int x1 = s.indexOf('s');4     int x2 = s.indexOf('a',2);5     int x3 = s.indexOf("script");6     int x4 = s.indexOf("script",2);7     System.out.println("x1="+x1+",x2="+x2+",x3="+x3+",x4="+x4);8 }

  

 

  4、反向索引一个字符或字符串出现的位置 

    public int lastIndexOf(int ch) 从字符串的最后向前查找,指定的字符是否存在,如果存在则返回位置,如果不存在则返回-1

    public int lastIndexOf(int ch,int fromIndex) 从字符串的指定的末尾向前查找,指定的字符是否存在,如果存在则返回位置,如果不存在则返回-1

1 public static void getLastIndexOf() {2     String s = "javascript";3     int x = s.lastIndexOf('a');4     System.out.println("x="+x);5}

  

 

  5、获取字符串中的一部分,即获取子串     

    String substring(begin);//从指定位置开始到结尾包含头    

    String substring(begin,end);//,指定开始和结尾 包含头不包含尾

1 public static void getSubstring(){2     String s1 = "javascript";3     String s2 = s1.substring(4);4     String s3 = s1.substring(0,5);5     System.out.println("s2="+s2+",s3="+s3);6 }

 

 

 

二、转换:

  1、将字符数组转成字符串

      构造函数:

        String(char[])

                 Stirng(char[],fffset,count):将字符数组中的一部分转换字符串

      静态方法:(直接用String类名调用,如:String s = String.copyValueOf())

                  static String copyValueOf(char[]);
                  static String copyValueOf(char[] ,int offset, int count);(offset表示起始位,count表示个数.如果超过了字符数组的长度,也发生字符串角标越界)
      
                //ValueOf这个方法除了可以将字符数组变成字符串之外,也可以将其他基本数据类型变成字符串
                static String valueOf(char[]);
                static String valueOf(char[] data, int offset, int count)

1 public static void CharsToString(){ 2     char[] arr ={'j','a','v','a','s','c','r','i','p','t'}; 3     //通过String类的构造函数将字符数组转成字符串(可以将字符数组的一部分转成字符串) 4     String s1 = new String(arr); 5     String s2 = new String(arr,2,7); 6     System.out.println("s1="+s1+",s2="+s2); 7      8   //通过String类中的静态方法将字符数组转成字符串(可以将字符数组的一部分转成字符串) 9     String s3 = String.copyValueOf(arr);10     String s4 = String.copyValueOf(arr, 2, 7);11     System.out.println("s3="+s3+", s4="+s4);12 }

 

  2、将字符串转成字符数组  

    char[] toCharArray();

1 public static void StringToChar(){2     String s = "javascript";3     char[] arr = s.toCharArray();4     for(char arrs : arr){5         System.out.println(arrs);6     }7 }

 

  3、将字节数组转成字符串(只能用构造函数)

      String(byte[])

      Stirng(byte[],fffset,count):将字节数组中的一部分转

      Stirng(byte[],String charsetName)(通过使用指定的charset解码制定的byte数组,构造一个新的String)

    String info = "小白是一个无节操,无干爹,无底线的三无少年";                //把字符串转换成字节数组        byte[] bytes = info.getBytes();        for(int i = 0;i

 

 

  4、将字符串转成字节数组(字符串和字节数组在转换过程中,是可以指定编码表的。)     

      byte[] getBytes();

1 public static void StringToBytes(){2     String s1 = "javascript";3     byte[] arr = s1.getBytes();4     for(byte arrs : arr){5         System.out.println((char)arrs);6     }7 }
    String info = "小白是一个无节操,无干爹,无底线的三无少年";                //把字符串转换成字节数组        byte[] bytes = info.getBytes();        for(int i = 0;i

 

 

  5、将基本的数据类型转成字符串

      static String valueOf(int)        

      static String valueOf(double)

      3+"";     String.valueOf(3);//这是一样的

 

 

  6、将字符串转成大写或者小写          

      String toUpperCase();           

      String toLowerCase();

1 public static void ToUpper_Lower(){2     String s1 = "javascript";3     String s2 = s1.toUpperCase();//转成大写4     String s3 = s2.toLowerCase();//转成小写5     System.out.println("s2="+s2+",s3="+s3);    6 }

 

 

 

三、判断:

  1、字符串中是否含某一个子串(不能判断是否包含某一个字符,只能是字符串)  

    boolean contains(String str);        //返回一个字符串是否存在,存在返回true 不存在返回false

    特殊之处:indexOf(str)可以索引str第一次出现位置,如果返回-1,表示该str不在字符串中存在  所以也可以用于对指定判断是否包含 该方法既可以判断又可以获取出现的位置

    只用于判断时用contains,既要判断又要获取位置用indexOf

1 public static void containsDemo() {2     String s = "javascript";3     boolean b = s.contains("java");4     System.out.println(b);5 }

 

 

  2、字符中是否有内容  

    boolean isEmpty();       //就是判断长度是否为0

1 public static void isEmptyDemo() {2     String s = " ";//空格也是一个字符3     boolean b = s.isEmpty();4     System.out.println(b);5 }

 

 

  3、字符串是否以指定的内容开头与字符是否是以指定内容结尾(接受的是字符串)

    boolean startsWith(str);

    boolean startsWith(str,int toffset);//从指定的位置开始判断是否以指定的内容开头

      boolean endsWith(str);

1 public static void startsWith_endsWith() {2     String s = "Array.java";3     boolean b1 = s.startsWith("Array");//开发中可以用于判断该文件名称是否是Array单词开头4     boolean b2 =s.endsWith(".java");//开发中可以用于判断该文件名的后缀是否是.java文件5     System.out.println("b1="+b1+",b2="+b2);        6 }

 

  4、判断字符串内容是否相同

    (复写了Object类中的equals方法,定义了自己的比较方式,比较字符串内容是否相同,相同为true,不相同为false)  boolean equals(str);

1 public static void equalsDemo() {2     String s1 = "javascript";3     String s2 = "javascript";4     String s3 = "html+CSS";5     boolean b1 = s1.equals(s2);6     boolean b2 = s1.equals(s3);7     System.out.println("b1="+b1+",b2="+b2);8 }

判断内容是否相同,并忽略大小写    boolean equalsIgnoreCase();

 

 

  5、对两个字符串进行自然顺序的比较(该方法能比较出谁大谁小,而equals只是比较两个对象是否相等)  

    int compareTo(string);

    对象之间的比较用的是compareTo方法,基本数据类型数据之间的比较用的是大于号,小于号,等于号这些运算符

1 public static void compareToDemo() {2     String s1 = "javascript";3     String s2 = "javascript";4     String s3 = "java";5     int b1 = s1.compareTo(s2);6     int b2 = s1.compareTo(s3);7     int b3 = s3.compareTo(s1);8     System.out.println("b1="+b1+",b2="+b2+",b3="+b3);9 }

 

 

 

四、其他常用的方法:

  1、替换(将字符串中的某个字符或某部分字符串替换)

        public String replace(char oldChar,char newChar) 替换指定字符

      public String replace(CharSequence target,CharSequence replacement) 替换指定字符串

        public String replaceAll(String regex,String replacement) 替换指定字符串
      public String replaceFirst(String regex,String replacement) 替换第一个满足条件的字符串

1 public static void replaceDemo() {2     String s = "javascript";3     String s1 = s.replace('a', 'b');4     String s2 = s.replace("java", "php");5     System.out.println("s1="+s1+",s2="+s2);6 }
public class EightFour {    public static void main(String[] args) {        String info = "小白长a的吧,像一个背靠着d墙没牙的,老头在喝粥";                //替换指定字符        String s1 = info.replace(',' , ':');        System.out.println(s1);                //替换指定字符串        String s2 = info.replace("小白", "大黑菜");        System.out.println(s2);                String s3 = info.replaceAll("的", "fuck");        String s4 = info.replaceAll("[a-z]", "&");//第一个参数表示的是正则表达式,这里表示a到z的字母都可以替换成&符号        System.out.println(s3);        System.out.println(s4);                String s5 = info.replaceFirst("一", "#");//也可以像replaceAll方法一样使用正则表达式        System.out.println(s5);            }}

 

 

 

  2、切割(返回的是一个字符串数组)     

      public String[] split(String regex) 按照指定的字符串拆分

      public String[] split(String regex,int limit) 拆分字符串,并指定拆分的个数

1 public static void splitDemo() {2     String s = "java,javascript,php";3     String[] ss = s.split(",");//这里要是双引号4     for(String sss : ss){5         System.out.println(sss);6     }7 }
public class EightSix {    public static void main(String[] args) {        String info = "怀才就像a怀孕-时间久了才能b-看的c出来";                String[] s1 = info.split("-");        for(int i = 0; i

 

 

 

  3、将字符串两端的多个空格去除  ,中间的空格不去  

    String trim();

1 public static void trimDemo(){2     String s = "   javas cript     "3     String ss  = s.trim();4     System.out.println(s);5     System.out.println(ss);6 }

 

 

  4、字符串连接操作

    public String concat(String str) 

String info = "   Time是把杀猪刀,黑了      木耳,紫了葡萄,软了香蕉。 ";        String s4 = info.concat("我的fuck");System.out.println(s4);

 

 

 

  5、比较(比较两个字符串内容是否相同)

    equals(String str):复写了Object中的equals方法,重新定义为比较两个字符串的内容是否相同并区分大小写

public class Text {    public static void main(String[] args) {        String s1 = "WeChat";        String s2 = "zhong";        System.out.println(s1.equals(s2));    }}

 

  6、equalsIgnoreCase(String str):

    比较两个字符串的内容是否相同,不区分大小写

public class Text {    public static void main(String[] args) {        String s1 = "WeChat";        String s2 = "wechat";        System.out.println(s1.equalsIgnoreCase(s2));    }}

 该方法这实际应用中用的非常多,比如我们在编写一个用户登录界面的时候,需要将用户的姓名与数据库里面的姓名进行比较,这时如果我们用equals方式来比较,就可能出错,比如程序可能认为Tom和tom不是同一个人,这样程序就不够友好了,想要让程序友好一些,不出现这样的错误,就要用  方法equalsIgnoreCase来做姓名这个字段的验证

转载于:https://www.cnblogs.com/xzuo/p/5310183.html

你可能感兴趣的文章
服务器解析请求的基本原理
查看>>
[HDU3683 Gomoku]
查看>>
下一代操作系统与软件
查看>>
Python IO模型
查看>>
DataGridView的行的字体颜色变化
查看>>
[Serializable]的应用--注册码的生成,加密和验证
查看>>
Android-多线程AsyncTask
查看>>
LeetCode【709. 转换成小写字母】
查看>>
如果没有按照正常的先装iis后装.net的顺序,可以使用此命令重新注册一下:
查看>>
【题解】青蛙的约会
查看>>
autopep8
查看>>
Android 官方新手指导教程
查看>>
幸运转盘v1.0 【附视频】我的Android原创处女作,请支持!
查看>>
安装 Express
查看>>
存储(硬件方面的一些基本术语)
查看>>
Weka中数据挖掘与机器学习系列之基本概念(三)
查看>>
leetcode-Sort List
查看>>
中文词频统计
查看>>
Java泛型的基本使用
查看>>
bzoj2038 [2009国家集训队]小Z的袜子(hose)
查看>>