1-1.字符串的概述与特点

字符串的概述:在Java中Java.lang.String类代表字符串。字符串是常量,创建后用不可变。
字符串的特点:
1).字符串的内容在创建后永不可变。(重点)
2).因为字符串在创建后是不可变的,所以字符串是可以共享的。
3).字符串的处理结果相当于char[ ]字符数组,但底层原理是byte[ ]字节数组。

1-2.字符串的构造方法和直接创建

创建字符串的常见3+1种方式:
三种构造方法:
1).public String( );
创建一个空的字符串,不含有任何内容。
2).public String (char[ ] array);
根据字符数组的内容,来创建对应的字符串。
3).public String(byte[ ] array);
根据字节数组的内容,来创建对应的字符串。
一种直接创建方法:
String str = "hello,world!";
注意:只要写了双引号,就是字符串的对象,不管有没有使用new关键字。

1-3.字符串比较的相关方法

String中“==”是对对象地址值的比较,若需要对字符串的内容进行比较,可以使用以下两个方法:
1).public boolean equals(Object obj);
参数可以是任何对象,只有在参数是一个字符串且内容相同时,才会输出true,否则输出false。
注意事项:
对该方法,任何对象都能使用Object进行接收;
对该方法,equals具有对称性,也就是a.equals(b)和b.equals(a)是一样的。
如果比较的双方,一个是常量,一个是变量,推荐吧常量字符串写在前面。即
推荐"abc".equals(str);不推荐:str.equals("abc");第二种写法在str变量为空时,会编译报错,第一种则会输出false。
2).public boolean equals Ignorecase(String str);
该方法可忽略字符的大小写进行比较(限英文字母大小写)。

2-1.字符串的获取相关方法

String当中与获取相关的方法有:
1).public int length();
用于字符串当中含有的字符个数,拿到字符串长度。
2).public String contact(String str);
将当前字符串和参数字符串拼接成为新的字符串做返回值。
3).public char charAt(int index);
获取指定索引值位置的单个字符(索引从0开始)。
4).public int indexof (String str);
查找参数字符串在本字符串中首次出现的索引位置。如果没有则返回一个值(-1)。

2-2.字符串的截取方法

1).public String substring(int index);
使用该方法可对字符串进行截取,截取从参数位置一直到字符串末尾,并返回新的字符串。
2).public String substring(int begin,int end);
使用该方法也能对字符串进行截取,可截取从begin开始的,到end结束中间的字符串。
注意:[begin,end)是左闭右开区间,包含左边,不包含右边。

2-3.字符串中的相关转换方法

1).public char[ ] tocharArray( );
将当前字符串拆分成字符数组(char[ ]),作为返回值。
2).public byte[ ] getBytes( );
获取当前字符串底层的字节数组(byte[ ]);
3).public String replay(charSquence oldString,charSquence newString):将所有出现的字符串替换成为新的字符串返回,替换之后的结果为新的字符串。
注意:charSquence可以接受字符串类型,是一个接口。

2-4.字符串的分割方法

方法:public String[ ] split (String regex);
按照参数规则,将字符串写分成若干部分。
split的参数其实就是一个正则表达式。
注意:若需要使用该方法按照英文句点”.“进行切分,必须写为”\\.“,否则不能成功切分。
*易错点*:
对下列这一段代码,
    String str = "字符串";
    System.out.println(str);
    str = "zifuchuan";
    System.out.println(str);
str中存储的依次是字符串"字符串"和"zifuchuan"的地址值,即该处是创建了两个字符串的,不是将字符串str的内容修改,字符串的内容是不能修改的。
本来str中存储的是"字符串"的地址值,后来str中的地址值被修改为"zifuchuan"的地址值。

字符串代码练习---统计输入字符中各种字符分别出现的次数:

代码如下:

//调用Scanner类String str = new Scanner(System.in).next();char[] C = str.toCharArray();//分别设置变量用于统计个字符类型出现的次数int count1 = 0, count2 = 0, count3 = 0, count4 = 0;//通过for循环对输入的字符进行统计for (int i = 0; i < C.length; i++) {if ('A' <= C[i] && C[i] <= 'Z') {//对大写英文字母进行统计count1++;} else if ('a' <= C[i] && 'z' >= C[i]) {//对小写英文字母进行统计count2++;} else if ('1' <= C[i] && '9' >= C[i]) {//对阿拉伯数字进行统计count3++;} else {//对其他字符进行统计count4++;}}//分别输出各字符的统计结果System.out.println("大写英文字母有:" + count1 + "个");System.out.println("小写英文字母有:" + count2 + "个");System.out.println("阿拉伯数字有:" + count3 + "个");System.out.println("其他字符有:" + count4 + "个");}

运行结果如下:

java 字符串 基础介绍相关推荐

  1. java switch基础介绍及具体使用方法

    switch的case语句可以处理int,short,byte,char类型的值,但是不能处理long,String等类型. java switch基础语法 witch(表达式){ case 表达式常 ...

  2. java语言基础介绍

    第一章java语言概述 1-1:Java知识图解 1-2. Java语言概述:Java简史 1991年 Green项目,开发语言最初命名为Oak (橡树) 1994年,开发组意识到Oak 非常适合于互 ...

  3. 【Java基础】Java字符串的处理

    目录 一.Java定义字符串 1.直接定义字符串 2.用构造函数创建字符串: 二.Java连接字符串 1.使用连接运算符 2.使用 concat() 方法 3.连接其他类型数据 三.Java获取字符串 ...

  4. java 字符串 面试_JAVA中String介绍及常见面试题小结

    字符串广泛应用 在 Java 编程中,在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作字符串. 深刻认识String 1)String为字符串常量:即String对象一旦 ...

  5. 【2022软件创新实验室暑假集训】Java环境安装与基础介绍

    Java环境安装与基础介绍 文章目录 文章目录 Java环境安装与基础介绍 文章目录 Java 简介 主要特性 关于语言学习的选择 Python Java Go&Rust Java环境配置 J ...

  6. JAVA笔记---------字符串基础与操作

    字符串基础: 声明字符串: String a; String a,b; 赋值: String a="";//若没有赋值该值为空值null String b,c; b="& ...

  7. Java教学基础1-基本介绍、变量、基本类型、运算符

    这里写自定义目录标题 第一讲 JDK (Java的运行环境) 执行过程 如何开发一个java程序 Hello World尝试一下 Java的跨平台性 Java解释型语言 Java的两大核心机制 注释 ...

  8. 【java json基础】字符串转json json转字符串 json数组转换 【java基础知识】【实用】【一看就会】

    原文:[java json基础]字符串转json json转字符串 json数组转换 [java基础知识][实用][一看就会] 读书就是:从薄读厚,再从厚读薄的过程. 文比较长,各讲述如下: 若是新手 ...

  9. JAVA基础--java 常用编辑器介绍及比较

    java 常用编辑器介绍及比较 -- 原文地址 : http://5ixiudou.com/portal/detailInfo/1000000005/197 因为java中包含很多的包管理,以及工程中 ...

最新文章

  1. Blender和Substance Painter复古相机创作学习教程
  2. struts-Result- Configuration
  3. 网和aoe网的区别_欧哲门窗的金刚网和其他品牌的有什么区别?
  4. 6月Unity技术路演华东站报名启动!
  5. 【转载】揭开硬件中断请求IRQ所有秘密(图解)
  6. 升级锦囊 | 测试开发核心技术46讲
  7. 与Zell关闭星期五
  8. docker gpu 创建 训练环境_基于 Mesos、Docker 和 Nvidia GPU 的深度学习平台实践
  9. matlab中的线性规划
  10. cJSON使用详细教程 | 一个轻量级C语言JSON解析器
  11. python中的snip用法_腾讯mac截图软件Snip使用教程
  12. 基于TADK的SQLI检测
  13. redis-trib.rb 使用详解
  14. 北邮计算机专硕在微软实习转正,【微软中国(Microsoft)实习生面试】很随意很简单,毕竟实习生转正比率很低。-看准网...
  15. 多目标优化 MOP (三):遗传算法 SPEA2+SDE 2014
  16. valgrnd调试详解
  17. 九章算术 九:《勾股》
  18. Basketball Dribbling
  19. 实战:618/双11大促备战全流程点点滴滴
  20. 金科股份称黄红云成被执行人和离婚有关,公司股价、毛利率均走低

热门文章

  1. haproxy负载均衡_做负载均衡Nginx、HAProxy和LVS总有一个适合你
  2. 设计模式 — 结构型模式 — 代理模式
  3. 使用 kolla-ansible 来 reconfigure OpenStack 集群
  4. Linux Kernel TCP/IP Stack — L4 Layer
  5. 互联网协议 — IP 网络的 QoS 服务模型
  6. stm32 GPIO的8种工作模式
  7. 2018.10.30-dtoj-4008-纸牌游戏(cards)
  8. 手撸一个npm包,安利一下duiba-sprite
  9. MySQL中的重做日志(redo log),回滚日志(undo log),以及二进制日志(binlog)的简单总结...
  10. vsftpd类似wu-ftpd分类(Class)的配置-给不同网段的人以不同的上传权限-对虚拟用户进行访问IP限制...