Java中string字符串和char字符之间的千丝万缕
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java中string字符串和char字符之间的千丝万缕,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含6805字,纯文字阅读大概需要10分钟。
内容图文
![Java中string字符串和char字符之间的千丝万缕](/upload/InfoBanner/zyjiaocheng/642/367a94a244734921b1705e777ca9e497.jpg)
目录
前言
String字符串和char字符的区别
- 类型
char是字符类型, String是字符串类型。
char只是一个基本数据类型,而String 是一个类,可以直接调用方法。 - 存储
String是用来存放一串字符的, char是用来存放单个字符的。
String内部用来存储的结果是一个char字符数组。 - 定义
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字符 的方法:
- 第一种方法就是StringBuffer类的append()方法;
- 第二种方法是先把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字符数组之间的拼接 的方法:
- 第一种方法和上述一样地,先把char字符数组转换成String字符串,然后两String字符串之间拼接,最后再转换回char字符数组。这里也有好几种写法。
同理,String字符串、char字符 和 char字符数组 三者之间的相互拼接,其主要算法思想就是先把char字符或char字符数组转换成String字符串,然后就变成String字符串之间的拼接了。 - 第二种方法就是常规的数组拼接的方法。写法也不是一成不变的。
同理,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字符 的方法:
- 第一种方法是用于知道在哪个索引位置插入字符串,其中insert()方法用于在指定索引位置之前插入字符串;
- 第二种方法是用于只知道要插在某端字符串前面,但不知道在哪个索引位置插入字符串,其中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字符数组 的方法:
- 第一种方法和上述一样地,先把char字符数组转换成String字符串,然后在指定位置插入,注意要把StringBuffer类转换成String类,最后再转换回char字符数组。这里也有好几种写法。
同理,在char字符数组的指定位置插入char字符或String字符串,其主要算法思想就是先把char字符或char字符数组转换成String字符串,然后就变成在String字符串的指定位置插入String字符串的形式了。 - 第二种方法就是常规的数组插入的方法。写法也不是一成不变的。
同理,在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二个字符后面插入ch2
int 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);
田小青
发布了3 篇原创文章 · 获赞 6 · 访问量 1220
私信
关注
内容总结
以上是互联网集市为您收集整理的Java中string字符串和char字符之间的千丝万缕全部内容,希望文章能够帮你解决Java中string字符串和char字符之间的千丝万缕所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。