Java字符串

来自CloudWiki
跳转至: 导航搜索

字符串的意义

现实生活中存在非常多的文本数据,例如文档资料(Word、Excel格式)、Web页面、微信的信息等。Java中字符串处理技术提供了文本数据的存储和编辑处理的多种有效方法,能够高效、方便地分析处理不同的文本数据。

创建String字符串

创建字符串的方法归纳起来有三种:

  • 直接赋值形式
String s1 ="炸酱面"
  • 利用new关键字
String s2 = new String("炸酱面");
  • 使用连接生成新的字符串
String str2 = "老北京" + "炸酱面";

String类的常用操作

计算字符串长度

String str2 = "老商职刀削面";   
System.out.println(str2.length());

字符串拼接

  • 使用连接生成新的字符串
String str2 = "老北京" + "炸酱面";

比较两个字符串对象的内容

比较两个字符串对象的内容:使用equals(ObjectanObject)方法比较字符串与指定的对象,当且仅当参数不为 null,且与此对象相同的字符序列的 String 对象时,结果才为true。

例如:模拟微信公众号自动回复

商院面馆公众号开展回馈活动,后台回复“我爱吃面”,可获得商院面馆8折优惠券一张。

import java.util.Scanner; 
 
public class Test {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        // 从键盘接收数据
 
        // next方式接收字符串
        System.out.println("欢迎访问商院面馆公众号,请输入查询内容");
               
       
        String str1 = scan.next();
        String str2 = "我要吃面";        
        
        //比较两个字符串的对象的内容
        if(str1.equals(str2)){
        	System.out.println("恭喜你,获得我司优惠券一张!");
        }
        scan.close();
    }
}

注意:Java中字符串的比较一定用equals(ObjectanObject)方法,而不能用==比较的方法。

获得指定位置的字符

商院面馆引入自动停车系统,能够人工智能识别车牌:

String str3 ="鲁A35043";
        System.out.println(str3.charAt(0));

返回字符串第一次出现的位置

String str3 ="鲁A35043";
        System.out.println(str3.charAt(0));
        int index = str3.indexOf("鲁");
        System.out.println(index);

如果此字符串中没有这样的字符,则返回 -1。

获取子字符串

 String str3 ="鲁A35043";
 System.out.println(str3.substring(0,2));

拆分字符串

// TODO Auto-generated method stub
	String str3 ="鲁A35043 鲁A3345F 鲁B2452A";
	//System.out.println(str3.substring(0,2));
	String [] data = new String[3];
        data = str3.split(" ");
        for(int i=0;i<data.length;i++) {
        	System.out.println(data[i]);
        }

忽略前导空白和尾部空白

String str5 ="  鲁A35043  ";
        System.out.println(str5.trim());

替换旧的字符为新字符

数据库存储需要,把汉字替换为Pinyin

String str3 ="鲁A34567";
	String str6 = str3.replace("鲁","lu");
        System.out.println("原字符串:"+str3);
        System.out.println("现字符串:"+str6);

思考:发生字符串替换后,原字符串内容发生改变了吗 ?

练习题

1. 练习以上代码

2.运用以上知识,尝试商院面馆停车场综合练习。

3. 假设我们从控制台获取的订单用字符串表示为 s=“堂吃_老北京炸酱面+1_口味:辣”),怎样从订单中去提取有用信息 ?

1) 打印字符串s

2)获取字符串s长度

3)为字符串s忽略前导空白和尾部空白

4)获取字符串s中前两个字符(堂吃/外卖)

5)获取字符串最后一个字符(辣/否)

6)替换字符串中的(堂吃/外卖)为(需打包/无需打包)

7)查询字符串中有无“+1”,如有打印信息:“该订单的面量请加1”,否则打印:"该订单正常面量"

8)假设我们用另一个字符串表示已有订单:

  total_s = "堂吃_老北京炸酱面+1_口味:辣 外卖_老济南打卤面+1_口味:否 堂吃_台南蛋仔面+1_口味:辣"

编写代码将字符串s加至已有的字符串total_s后面

9)拆分现在的字符串total_s 打印所有的订单信息