【技巧总结】java整数,字符串,数组之间的相互转换以及常用API(持续更新)
字符串转换为int类型
- 给定一个字符串 String str = "1234";
- 转为转数字 1234
valueOf()
Integer num = Integer.valueOf(str);
返回的是包装类对象,可以进行调用对象方法可以用toString()方法。
parseInt
int num = Integer.parseInt(str)
返回的是基本数据类型
字符串转换Char数组
- 给定字符串 str =
"helllo"
- 转换为char数组
{"h","e","l","l","o"}
Char[] ch = str.toCharArray();
字符串转换String数组
-
给定字符串
"12345"
-
转换为String数组
{"1","2","3","4","5"}
toCharArray
String str = "12345";
char ch = str.toCharArray();
for(int i = 0;i < ch.length;i++){
System.out.println(ch[i])
}
将String对象的每一个下标位的对象保存在char[]中
split()
String str = "12345";
String[] arr = str.split();
for(int i = 0;i < arr.length;i++){
System.out.println(arr[i]);
}
根据你需要按照的分隔符来分割,然后返回字符串数组.
整数转换字符串
-
给定一数字,
int a=1234;
-
转换为字符串
"1234"
valueOf()
int num = 1234;
String str = String.valueOf(num);
toString()
int num = 1234;
Integer in = num;
String str = in.toString();
整数转int数组
-
给定整数
12345
-
转换为 int数组
[1,2,3,4,5]
思路:因为不确定数字长度,所以先转换为字符串,确定数组长度。
public class T_1003 {
public static void main(String[] args) {
int num = 12345;
String str = String.valueOf(num);
int[] arr = new int[str.length()];
for (int i = 0; i < str.length(); i++) {
String s = String.valueOf(str.charAt(i));
arr[i] = Integer.parseInt(s);
}
System.out.println(Arrays.toString(arr));
}
}
注意:如果直接打印arr,打印出来的是数组地址。想要得到数组内容,需要用Arrays.toString()方法。
以上运行结果为:
[1, 2, 3, 4, 5]
int数组转换整数
- 给定int数组
[1,2,3,4,5]
- 转换为整数
12345
int[] arr = {1,2,3,4,5};
int sum = 0;
for(int i = 0;i < arr.length;i++){
sum = sum *10 + arr[i];
}
将char转换为int类型的方法
- 使用Character类的静态方法getNumericValue(char c)将一个字符转换为数字,例如:
char ch = '5';
int num = Character.getNumericValue(ch); // 5
- 由ASCII码转化为整型
char ch = '5';
int num = ch - '0'
int类型转为char类型变成+'0'。
大小写转换
//小写转大写
char C = 'a' - 32;
//大写转小写
char C = 'A' + 32;
常用API——StringBuilder类
- StringBuilder代表可变字符串对象,相当于是一个容器,它里面的字符串是可以改变的,就是用来操作字符串的。
- 好处:StringBuilder比String更合适做字符串的修改操作,效率更高,代码也更加简洁。
append()方法
:拼接内容。
StringBuilder sb = new StringBuilder();
sb.append(12);
sb.append(34);
System.out.println(sb);
输出:
1234
reverse()
:反转操作。
StringBuilder sb = new StringBuilder();
sb.append(12);
sb.append(34);
sb.reverse(sb);
System.out.println(sb);
输出:
4321
转换字符串操作:
String s = sb.toString;
System.out.println(s);
常用API——StringJoiner类(拼接神器)
add()
方法
StringJoiner sj = new StringJoiner(",");//表示字符之间用","分隔
sj.add("java");
sj.add("python");
sj.add("C++");
System.out.println(sj);
输出:
java,python,C++
//参数1:间隔符
//参数2:开头
//参数3:结尾
StringJoiner s1 = new StringJoiner(",","[","]");
s1.add("java1");
s1.add("java2");
s1.add("java3");
System.out.println(s1);
输出:
[java1,java2,java3]
常用API——Scanner类
nextInt()
:从输入流读取一个整数
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
nextDouble()
:从输入流中读取一个双精度浮点数
Scanner sc = new Scanner(System.in);
double num = sc.nextDouble();
next()
:从输入流中读取一个字符串
Scanner sc = new Scanner(System.in);
String str = sc.next();
next()和nextLine()的区别
next()
1、一定要读取到有效字符后才可以结束输入。
2、对输入有效字符之前遇到的空白,next() 方法会自动将其去掉。
3、只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
4、next() 不能得到带有空格的字符串。
nextLine()
1、以Enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符。
2、可以获得空白。
hasNext()
(判断当前位置是否有元素可以获取)
一般用在Collection集合的迭代器中。
迭代器:作为集合的通用遍历方式。
Collection<String> c = new ArrayList<>();
c.add("yy1");
c.add("yy2");
c.add("yy3");
c.add("yy4");
System.out.println(c); //[yy1,yy2,yy3,yy4]
//第一步:先获取迭代器对象
//解释:Iterator就是迭代器对象,用于遍历集合的工具
Iterator<String> it = c.iterator();
//第二步:用于判断当前位置是否有元素可以获取
//解释:hasNext()方法返回true,说明有元素可以获取;反之没有
while(it.hasNext()){
//第三步:获取当前位置的元素,然后自动指向下一个元素.
String e = it.next();
System.out.println(s);
}
迭代器原理如下:
- 当调用iterator()方法获取迭代器时,当前指向第一个元素
- hasNext()方法则判断这个位置是否有元素,如果有则返回true,进入循环
- 调用next()方法获取元素,并将当月元素指向下一个位置,
- 等下次循环时,则获取下一个元素,依此内推
本文作者:ONEINAMILLION
本文链接:https://www.cnblogs.com/oneinamillion/p/18002153
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步