java字符串String常用方法操作详解

String简介

在计算机的世界中,很多时候离不开字符串的处理,因为从纸质的内容变成计算机数据这个过程的原始数据都是字符串,所以很多时候我们遇到的数据处理都是在操作字符串,所以处理字符串也是一项非常使用的技能。
在java中String字符串也是对象,所以它也包含数据和方法。字符串拥有的方法非常多,那是不是都要掌握呢?答案当时不是啦,事实上我们只要掌握其中使用频率最高的一些方法就已经足够了。

字符串长度length

字符串长度十分实用,比如说我们发微博限制140个字,那就要计算字的个数,这个个数就可以通过字符串的长度方法来完成。语法如下:

public static void main(String[] args) {

  String message = "今天我在学习 Java 字符串";
  // 调用字符串的长度方法得到长度
  int size = message.length();
  //长度是15,空格也算一个长度
  System.out.println(size);
}

取出字符串中的一个字charAt

一个字符串,比如:“Hello Java”,我们想取出第二个字,那么就可以实用charAt(index),index就是具体的坐标(和数组一样,从0开始的),所以第二字的index值是1.

public static void main(String[] args) {

  String message = "Hello Java";
  // 取出第一个字
  char str = message.charAt(0);
  System.out.println(str);
  // 取出第二个字
  str = message.charAt(1);
  System.out.println(str);
}

去掉左右多余的空格trim

通过trim()方法可以去掉字符串左右的空格,得到一个新的字符串.也就是说原始的字符串执行trim()方法后并不会改变自己的值,而是得到一个新的字符串。

 public static void main(String[] args) {
    String str = " 优课达 ";
    // 打印一下现在的length
    System.out.println(str+"是:"+str.length());
    // 处理一下去空格
    String newStr = str.trim();
    // 打印一下新字符串的length——3
   System.out.println(newStr+"是:"+newStr.length());
    // 对比再打印一下老的字符串的length——5
    System.out.println(str+"的长是:"+str.length());
  }

查找字符串indexOf

indexof(“字符串”)这个方法就是解决这类问题的,indexOf方法接受一个String字符串,当调用这个方法的时候,就会去文本中去查找第一个匹配到的坐标索引值,所以我们可以得到int数字类型。我们可以根据这个int数字的值来判断是否匹配。
如果返回值是-1,说明不匹配,如果返回值!=-1,那么说明匹配到了。

  public static void main(String[] args) {
    String str = "Java是一种广泛使用的计算机编程语言,拥有跨平台、面向对象、泛型编程的特性,java广泛应用于企业级Web应用开发和移动应用开发。";
    int index = str.indexOf("Java");
    if(index!=-1){
      System.out.println("匹配到了Java,索引位置是"+index);
    }else{
      System.out.println("没有匹配到了Java");
    }
  }

如果想找到第二个出现java的位置,该怎么办?
这就要使用indexOf方法的一个新的调用方式:indexOf(“字符串”,“开始索引值”),第二个参数是一个数字类型,用于设定从什么位置开始查。所以我们找到第一个匹配到的索引+匹配字符串长度就是开始值了,这个时候查找到的就是第二个匹配内容了。代码实现如下:

  public static void main(String[] args) {
    String str = "Java是一种广泛使用的计算机编程语言,于1995年5月以Java的名称正式发布。";
		//第一个java的index是0
    int index = str.indexOf("Java");

    index = str.indexOf("Java", index + 4);

    System.out.println("第二次匹配到了Java,索引位置是" + index);
  }

字符串拼接substring

如果有时候我们想得到某个匹配到的字符串之后的内容,就要用到substring这个字符串拼接方法了。
substring方法有两种调用方式,一种是:** substring(开始索引,结束索引) **,这个方法执行的结果说就是拼接新的一个字符串,从开始索引开始(含这个值)到结束索引结束(不含);还有一种是substring(开始索引),这个方法执行的结果就是从开始索引开始(含这个值)一直到结束。
例如想得到上段文本第一个java之后的内容,则代码实现如下:

String str = "Java是一种广泛使用的计算机编程语言,拥有跨平台、面向对象、泛型编程的特性,java广泛应用于企业级Web应用开发和移动应用开发。";
    int index = str.indexOf("Java");//0

    if (index != -1) {
      System.out.println("匹配到了Java,索引位置是" + index);

      String newStr = str.substring(index+4);
      System.out.println(newStr);

    } else {
      System.out.println("没有匹配到了Java");
    }

字符串开始和结束内容判断startsWith/endsWith

我们在电脑上经常会存放各种文件,这个时候就会有一个需求,根据文件名来判断文件格式,比如是不是word文档。这个时候就要借助endsWith方法,endWith(“字符串”),用于判断是否以该字符串结束的,所以返回类型是boolean,我们根据返回值类型就可以判断了。

  public static void main(String[] args) {
    String fileName = "报告.doc";

    if(fileName.endsWith(".doc")){
      System.out.println("是word文档");
    }

  }

startWith和endsWith语法一致,不同的是startWith判断的是文本开头是不是匹配内容,比如说,我们想判断一个网址是不是安全的地址,那么我们就可以使用statrWith(“https”)来判断。

  public static void main(String[] args) {
    String url = "https://www.youkeda.com";

    if(url.startsWith("https")){
      System.out.println("网址是安全的");
    }

  }

字符串替换replaceAll

replaceAll(“要替换的值”,“新值”),replaceAll方法有两个字符串参数,第一个代表的是要替换的值,第二个代表的是新值,这个执行后会得到一个新的字符串(原始的字符串不会变哦)。

 public static void main(String[] args) {
    String str = "Java是一种广泛使用的计算机编程语言,拥有跨平台、面向对象、泛型编程的特性,java广泛应用于企业级Web应用开发和移动应用开发。";

    String newStr = str.replaceAll("Java","Python");

    System.out.println(newStr);
    System.out.println(str);
  }

通过replaceAll()方法,我们还可以删除指定内容,只要将新值换成空格就可以了,比如我们想去掉文件的后缀名。

public static void main(String[] args) {
    String fileName = "报告.doc";

    String name = fileName.replaceAll(".doc","");

    System.out.println(name);
  }

字符串分割split

很多时候,我们常常会处理有格式的文本数据,比如这样的

姓名|年龄|性别
张三|20|男
李四|18|男
小花|18|

多数处理这样的数据,会先把这种文本数据变成数组,每一行作为一条记录,从一个文本变成数组数据,那就需要split(“分割字符串”),注意这个字符字符串可以是字符串,也可以是特殊的符号,比如说换行的符号是\n,值得注意是,‘.’ ‘|’ ‘*’ 这三个字符如果作为分割符,那么就需要加上‘\’ ,比如str.split("\|"),spilt方法执行的结果是返回一个字符串数组对象,具体代码实现如下:

public static void main(String[] args){
  String text = "姓名|年龄|性别\n张三|20|男\n李四|18|男\n小花|18|女";

  // 使用 split 进行换行符的分割,得到一个新的数组对象
  String[] data = text.split("\n");

  // 因为第一行是标题不是数据,所以我们需要把长度-1
  // (注意要使用小括号包围,因为要先计算长度再组合字符串)
  System.out.println("共有:"+(data.length-1)+" 条记录");
}

我们还可以继续分割每一行的数据,具体代码实现如下:

public static void main(String[] args){
  String text = "姓名|年龄|性别\n张三|20|男\n李四|18|男\n小花|18|女";

  // 使用 split 进行换行符的分割,得到一个新的数组对象
  String[] data = text.split("\n");

  // 因为第一行是标题不是数据,所以我们需要把长度-1
  // (注意要使用小括号包围,因为要先计算长度再组合字符串)
  System.out.println("共有:"+(data.length-1)+" 条记录");

  // 忽略第一行标题数据,所以我们把 i 设为1,从第二条记录开始
  for(int i=1;i<data.length;i++){
    // 使用 \\| 进行字符串分割,得到一个新数组对象
    String[] lines = data[i].split("\\|");
    System.out.println("姓名:"+lines[0]+" 年纪:"+lines[1]+" 性别:"+lines[2]);
  }
}

大小写转化toUpperCase/toLowerCase

toUpperCase()和toLowerCase()方法都没有参数,它的作用分别就是把字符中的字母全部变成大写和小写,并且返回出新字符串数据。示例如下:

  public static void main(String[] args) {
    String text = "ZhanSan";
    // 把拼音全部转化为大写字母
    String enName = text.toUpperCase();
    System.out.println(enName);
  }

字符串比较equals

在java中比较两个字符串是否相同不是用“==”,而是使用equals(“被比较的字符串”)方法。

bash
  public static void main(String[] args) {

    String text = "字符串";
    // 使用 equals 方法判断是否相同
    if (text.equals("字符串")) {
      System.out.println("equals 方法字符串相等");
    }
    // 前后顺序无所谓,下面代码是一样的
    if ("字符串".equals(text)) {
      System.out.println("equals 方法字符串相等");
    }
  }

数字和字符串转化Interger.parseInt

字符串转化为数字

在java中我们可以使用Interger这个对象的parseInt方法进行处理,这个方法的作用就是让字符串变成数字。

bash
  public static void main(String[] args) {
    String text = "123";
    // 转化字符串为数字
    int a = Integer.parseInt(text);
    System.out.println(a);

    // 转化字符串为数字
    a = Integer.parseInt("100");
    System.out.println(a);
  }

数字转化为字符串

  • 方法一:利用“+”
 public static void main(String[] args) {
	int a = 100;
	int b =  20;
    //使用空字符串相加数字,会自动变成字符串类型
    String str = ""+a+b;
    String str2=a+b+""
    System.out.println(str);   //10020
	System.out.println(str2);  //120
  }
  • 方法二 :利用String.valueOf()
    valueOf方法参数接受数字、浮点数、布尔类型转化为字符串
  public static void main(String[] args) {

    int a = 100;
    //使用valueOf强制把数字转化为字符串
    String str = String.valueOf(a);
    System.out.println(str);
  }
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值