目录

  • 前言
    • String字符串和char字符的区别
    • 拓展
  • 相互转换
    • String字符串转换成char字符数组
    • char字符转换成String字符串
    • char字符数组转换成String字符串
    • String类和StringBuffer类之间的转换
  • 拼接
    • String字符串之间的拼接
    • String字符串和char字符之间的拼接
    • String字符串、char字符以及char字符数组之间的拼接
  • 在指定位置插入
    • 在String字符串的指定位置插入String字符串(或char字符或char字符数组)
    • 在char字符数组的指定位置插入char字符数组(或char字符或String字符串)
  • 增加或减少长度
    • 增加或减少char字符数组的长度
    • 增加或减少String字符串的长度

前言

String字符串和char字符的区别

  1. 类型
    char是字符类型, String是字符串类型。
    char只是一个基本数据类型,而String 是一个类,可以直接调用方法。
  2. 存储
    String是用来存放一串字符的, char是用来存放单个字符的。
    String内部用来存储的结果是一个char字符数组。
  3. 定义
    char定义时用单引号 ,只能有一个字母或数字。
    String定义时用双引号 ,可以是一个或者多个的字母或数字等,就是所谓的字符串。

拓展

String类是字符串常量,是不可更改的常量。而StringBuffer类是字符串变量,它的对象是可以扩充和修改的。
下面将用到StringBuffer类的方法,所以先介绍一下。


相互转换

String字符串转换成char字符数组

第一种方法适合直接按string字符串的先后顺序把字符放进数组里面;
第二种方法就可以正序或者倒序,String类的charAt()方法用于获取指定索引处的单个字符;
这里顺便提供一种倒序的方法,StringBuffer类的reverse()方法用于反转字符串。

 String str = "abcd";//第一种方法(正序)char[] ch = str.toCharArray();//第二种方法(倒序)char[] ch = new char[str.length()];int j = str.length()-1;for (int i=0; i < ch.length; i++){ch[i] = str.charAt(j--);}//倒序的写法一StringBuffer str1 = new StringBuffer(str);str1.reverse();//倒序的写法二StringBuffer str1 = new StringBuffer(str).reverse();

char字符转换成String字符串

 char ch = 'a';//第一种方法String str = ch + "";//第二种方法String str = Character.toString(ch);//第三种方法String str = String.valueOf(ch);

char字符数组转换成String字符串

 char[] ch = {'a', 'b', 'c'};//第一种方法String str = new String(ch);//第二种方法String str = String.valueOf(ch);

String类和StringBuffer类之间的转换

 String str = "abc";//String类转换成StringBuffer类StringBuffer buf = new StringBuffer(str);//StringBuffer类转换成String类String str = buf.toString();//第一种方法String str = new String(buf);//第二种方法

拼接

String字符串之间的拼接

第三种方法用到了StringBuffer类的append()方法,其用于在字符串的后面追加字符串。

 String str1 = "abc";String str2 = "123";//第一种方法String str3 = str1 + str2;//第二种方法String str3 = str1.concat(str2);//第三种方法的写法一StringBuffer str3 = new StringBuffer(str1);str3.append(str2);//第三种方法的写法二StringBuffer str3 = new StringBuffer(str1).append(str2);

String字符串和char字符之间的拼接

下面代码是关于 String字符串后面接char字符 的方法:

  1. 第一种方法就是StringBuffer类的append()方法;
  2. 第二种方法是先把char字符转换成String字符串,然后就变成String字符串之间的拼接了。后面还有好几种写法,可以参考前面的内容,这里就不再介绍了。
    同理,String字符串char字符 两者之间的相互拼接,其主要算法思想就是先把char字符转换成String字符串,然后就变成String字符串之间的拼接了。
 String str1 = "abc";char ch = '1';//第一种方法StringBuffer str2 = new StringBuffer(str1).append(ch);//第二种方法的写法一String str2 = ch + "";String str3 = str1 + str2;//第二种方法的写法二String str2 = str1 + ch + "";

String字符串、char字符以及char字符数组之间的拼接

下面代码是关于 char字符数组之间的拼接 的方法:

  1. 第一种方法和上述一样地,先把char字符数组转换成String字符串,然后两String字符串之间拼接,最后再转换回char字符数组。这里也有好几种写法。
    同理,String字符串char字符char字符数组 三者之间的相互拼接,其主要算法思想就是先把char字符或char字符数组转换成String字符串,然后就变成String字符串之间的拼接了。
  2. 第二种方法就是常规的数组拼接的方法。写法也不是一成不变的。
    同理,String字符串char字符char字符数组 三者之间的相互拼接,其主要算法思想就是通过把String字符串转换成char字符数组来实现拼接。
 //第一种方法char[] ch1 = {'a','b','c'};char[] ch2 = {'1','2','3'};String str1 = String.valueOf(ch1);String str2 = String.valueOf(ch2);String str3 = str1 + str2;char[] ch3 = str3.toCharArray();//第二种方法char[] ch1 = {'a','b','c'};char[] ch2 = {'1','2','3'};char[] ch3 = new char[ch1.length + ch2.length];int i = 0;for (char c : ch1) {ch3[i++] = c;}for (char c : ch2) {ch3[i++] = c;}

在指定位置插入

在String字符串的指定位置插入String字符串(或char字符或char字符数组)

下面代码是关于 在String字符串的指定位置插入String字符 的方法:

  1. 第一种方法是用于知道在哪个索引位置插入字符串,其中insert()方法用于在指定索引位置之前插入字符串;
  2. 第二种方法是用于只知道要插在某端字符串前面,但不知道在哪个索引位置插入字符串,其中indexOf()方法用于返回指定字符串的开始字符索引位置,还可以从某个字符索引位置开始向后匹配,没有找到匹配的就会返回-1。

同理,这两种方法也适用于 在String字符串的指定位置插入char字符或char字符数组 。值得注意的是当要插入char字符数组时,先把char字符数组转换成String字符串,然后再插入到String字符串里面。

 String str1 = "abc";String str2 = "123";//第一种方法的写法一StringBuffer str3 = new StringBuffer(str1);str3.insert(2, str2);//第一种方法的写法二StringBuffer str3 = new StringBuffer(str1).insert(2, str2);//第二种方法StringBuffer str3 = new StringBuffer(str1);int index = str3.indexOf("bc");str3.insert(index, str2);

在char字符数组的指定位置插入char字符数组(或char字符或String字符串)

下面代码是关于 在char字符数组的指定位置插入char字符数组 的方法:

  1. 第一种方法和上述一样地,先把char字符数组转换成String字符串,然后在指定位置插入,注意要把StringBuffer类转换成String类,最后再转换回char字符数组。这里也有好几种写法。
    同理,在char字符数组的指定位置插入char字符或String字符串,其主要算法思想就是先把char字符或char字符数组转换成String字符串,然后就变成在String字符串的指定位置插入String字符串的形式了。
  2. 第二种方法就是常规的数组插入的方法。写法也不是一成不变的。
    同理,在char字符数组的指定位置插入char字符或String字符串 ,其主要算法思想就是通过把String字符串转换成char字符数组来实现插入。
 //第一种方法char[] ch1 = {'a','b','c'};char[] ch2 = {'1','2','3'};String str1 = String.valueOf(ch1);String str2 = String.valueOf(ch2);StringBuffer str3 = new StringBuffer(str1).insert(2, str2);char[] ch3 = str3.toString().toCharArray();//第二种方法char[] ch1 = {'a','b','c'};char[] ch2 = {'1','2','3'};char[] ch3 = new char[ch1.length + ch2.length];int index = 2;//在ch1的第2二个字符后面插入ch2int k = 0;for (int i = 0; i < index; i++) {ch3[k++] = ch1[i];}for (char c : ch2) {ch3[k++] = c;}for (int i = index; i < ch1.length; i++) {ch3[k++] = ch1[i];}

增加或减少长度

增加或减少char字符数组的长度

Arrays的copyOf()方法传回的数组是新的数组对象,改变传回数组中的元素值,不会影响原来的数组。copyOf()的第二个自变量是指要建立的新数组的长度,如果新数组的长度超过原数组的长度,则保留为数组默认值。

 char[] ch1 = {'a','b','c'};char[] ch2 = Arrays.copyOf(ch1, 5);

增加或减少String字符串的长度

 String str1 = "abc";char[] ch1 = str1.toCharArray();char[] ch2 = Arrays.copyOf(ch1, 5);String str2 = String.valueOf(ch2);

Java中string字符串和char字符之间的千丝万缕相关推荐

  1. JAVA中String字符串删除指定字符的办法

    场景: 有个字符串oldStr,内容为"a,b,c,d,e",想动态删除某个字符,或c或b. 解决办法: 1.转数组 String[] arr = oldStr.split(&qu ...

  2. java string设置编码_详解Java中String类型与默认字符编码

    为什么写这个 至于为什么要写这个,主要是一句mmp一定要讲,绕了一上午,晕死 Java程序中的中文乱码问题一直是一个困扰程序员的难题,自己也不例外,早在做项目时就遇到过很多编码方式的坑,当时想填来着, ...

  3. Java中String字符串截取几种方法(substring,split)

    Java中String字符串截取几种方法 substring,split 这是一个Java中的String的基础用法的演示. 下面通过代码对大家进行讲解 substring 这里用来ndexOf,la ...

  4. Java中String字符串:空字符串、存放空的字符串、null的区别

    Java中String字符串:空字符串.存放空的字符串.null的区别 Java String字符串中有三种特殊的字符串:空字符串.存放空的字符串.字符串为Null,如下所示: String str1 ...

  5. java中String,int,Integer,char、double类型转换

    java中String,int,Integer,char.double类型转换----https://www.cnblogs.com/kangyu222/p/5866025.html 转载于:http ...

  6. Java中String 字符串与List<String>互转

    Java中String 字符串与List互转 大家好,我是酷酷的韩~ 1.String转List public static void main(String[] args) {String aa = ...

  7. Java中string字符串的值_Java中的字符串(String)

    一.基本概念: 字符串是一系列字符串的序列.在Java语言中字符串是用一对对双引号"",括起来的字符系列.例如"Hello","你好".从数 ...

  8. Java中从字符串删除指定字符

    public class RemoveChar {public static void main(String[] args) throws IOException {Scanner sc=new S ...

  9. Java中String字符串toString()、String.valueOf()、String强转、+ 的区别

    Object#toString(): Object object = getObject(); System.out.println(object.toString()); 在这种使用方法中,因为ja ...

最新文章

  1. 冠军方案分享:ICPR 2020大规模商品图像识别挑战赛冠军解读
  2. java设计模式---职责链模式
  3. mysql.zip要什么下载_mysql用zip安装方法是什么
  4. HTML5按钮的点击态问题
  5. 使用JDK 8流在包装对象的集合和包装对象的集合之间转换
  6. 听说,他用报表关联数据库表,运维效率提升70%?
  7. 多个线程对串口读取 modbus_看完这个,如果还不懂Modbus,那您去撞豆腐吧
  8. TokenInsight:反映区块链行业整体表现的TI指数较昨日同期上涨2.97%
  9. 我们为什么需要SDN?
  10. oracle dba_hist_sql,从dba_hist_sqlstat视图中查找过去时段最占用资源的会话
  11. 获取当周和上周的周一、周日时间
  12. syslinux和grub引导linux,在Arch上使用Syslinux替代GRUB
  13. SolidWorks DocumentManager LicenseKey
  14. html css remove,CSS類別操作--.removeClass()
  15. uni-app cli创建项目打包并配置多环境读取配置文件信息
  16. 酒水知识(六大基酒之白兰地_Brandy)
  17. 好用免费的在线PDF转换工具推荐
  18. Java开发高频英语单词800+,熟悉后英文障碍又少了
  19. Cisco Packet Tracer 简介和安装
  20. mysql查询表可编辑器_数据库查看编辑工具(Exportizer)

热门文章

  1. 【区块链】Go 实现简单区块链
  2. apicloud学习笔记
  3. 58同城python_Python实战计划爬虫作业第一周作业:爬58同城
  4. java程序的可移植性
  5. Faster-RCNN论文细节原理解读+代码实现gluoncv(MXNet)
  6. OpenCV/OpenCL/OpenGL区别
  7. CI框架教程5——整合PHPExcel库应用
  8. draft https://www.cnblogs.com/shadow-wolf/p/6524603.html
  9. go语言工作目录都有什么?GOPATH下的目录结构
  10. C站万字详解二叉树基本操作演示程序(附图)