【技巧总结】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 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 it = c.iterator();

//第二步:用于判断当前位置是否有元素可以获取
//解释:hasNext()方法返回true,说明有元素可以获取;反之没有
while(it.hasNext()){
    //第三步:获取当前位置的元素,然后自动指向下一个元素.
    String e = it.next();
    System.out.println(s);
}

迭代器原理如下:

- 当调用iterator()方法获取迭代器时,当前指向第一个元素
- hasNext()方法则判断这个位置是否有元素,如果有则返回true,进入循环
- 调用next()方法获取元素,并将当月元素指向下一个位置,
- 等下次循环时,则获取下一个元素,依此内推

你可能感兴趣的:(java,开发语言,算法)