第一种,数组转变成字符串
用于:想得到某个数组里最大值对应的位数
两种方法:**vlaueOf()**函数:static Integer valueOf(int i) static Integer valueOf(String s) static Integer valueOf(String s, int radix)
直接加空字符串“ ”强制转换;
public class Max {
public static void main(String[] args) {
int[] arr = {123, 6789, 34, 21, 8};
int max = arr[0];
int val = 0;
for(int i = 0; i < arr.length; i++){
if(max < arr[i]){
max = arr[i];
val = i;
}
}
String s = String.valueOf(max);
System.out.println("第"+ val + "位的值最大,值为" + max +", 是" + s.length() + "位数字");
System.out.println("=======================================");
String a = max + "";
System.out.println("第"+ val + "位的值最大,值为" + max +", 是" + a.length() + "位数字");
}
}
打印输出结果为:
D:\JAVA\jdk-13.0.1\bin\java.exe "-javaagent:D:\JetBrains\IntelliJ IDEA 2019.3.1\lib\idea_rt.jar=61714:D:\JetBrains\IntelliJ IDEA 2019.3.1\bin" -Dfile.encoding=UTF-8 -classpath D:\IdeaProjects\basic-code\out\production\day01-code yu.practice03.Sort.Max
第1位的值最大,值为6789, 是4位数字
=======================================
第1位的值最大,值为6789, 是4位数字
Process finished with exit code 0
**toString()**方法:返回一个字符串值
//Arrays需要提前导包
System.out.println(Arrays.toString(arr));
第二种:将字符串转换为数组
**toCharArray()**方法:将字符串转换为字符数组(注意该函数无参)
public class Test {
public static void main(String args[]) {
String Str = new String("www.runoob.com");
System.out.print("返回值 :" );
System.out.println( Str.toCharArray() );
}
}
运行结果为:
返回值 :www.runoob.com
**charAt(int index)**方法:返回指定索引处的字符。索引范围为从 0 到 length() - 1。
**parseInt(String s , int radix)**方法:将字符串参数作为有符号的十进制整数进行解析。如果方法有两个参数, 使用第二个参数指定的基数,将字符串参数解析为有符号的整数。即将字符串变成整数。
substring(int beginIndex, int endIndex):返回字符串的子字符串,分割字符串。
public class Test {
public static void main(String args[]) {
String Str = new String("www.runoob.com");
System.out.print("返回值 :" );
System.out.println(Str.substring(4) );
System.out.print("返回值 :" );
System.out.println(Str.substring(4, 10) );
}
}
运行结果为:
返回值 :runoob.com
返回值 :runoob
StringBuilder/StringBuffer
当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类。
和 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。
StringBuilder 类在 Java 5 中被提出,它和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的(不能同步访问)。
由于 StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类。然而在应用程序要求线程安全的情况下,则必须使用 StringBuffer 类。
Arrays类中的一些方法
arrays.copyOf: 其语法为: copyOf(arr,int newlength),参数中,arr是要进行复制的数组,newlength是int型常量,用以指定复制后的新数组的长度,如果新数组的长度大于原数组的长度,多余的部分默认值是0(String类型的数组用null来填充)。如果复制后的数组长度小于原数组的长度,则会从原数组的第一个元素开始截取至达到新数组的长度为止。
**arrays.copyOfRange:其语法为:copyOfRange(arr,int fromIndex,int toIndex),fromIndex是开始复制数组的索引位置,其取值必须在0到数组的长度之间,新数组包括索引为fromIndex的元素。toIndex表示最后的索引位置,新数组不包括索引为toIndex的元素。左闭右开。
** range() 函数:(1)它表示的是左闭右开区间;(2)它接收的参数必须是整数,可以是负数,但不能是浮点数等其它类型;(3)它是不可变的序列类型,可以进行判断元素、查找元素、切片等操作,但不能修改元素;(4)它是可迭代对象,却不是迭代器。
Arrays.asList的作用是将数组转化为list,一般是用于在初始化的时候,设置几个值进去,简化代码,省去add的部分。
示例:List ebsCodes = Arrays.asList(“USERNAME”,“REAP”,“NLS”);
也可以使数组[但是数组类型不能是(byte,short,int,long,float,double,boolean),可以是integer等。
String[] s = {“aa”,“bb”,“cc”};
List strlist = Arrays.asList(s);
replaceAll(regex , 要替换的内容) —regex 是正则表达式
s = s.replaceAll("[^0-9a-z]" "");
//把不是0-9,a-z的字符替换成空;
replace和replaceAll是JAVA中常用的替换字符的方法
public String replace(char oldChar, char newChar) 在字符串中用newChar字符替代oldChar字符,返回一个新的字符串
public String replaceAll(String regex,String replacement)使用给定的 replacement 字符串替换此字符串匹配给定的正则表达式的每个子字符串。
区别:
1)replace的参数是char和CharSequence,即可以支持字符的替换,也支持字符串的替换(CharSequence即字符串序列的意思,说白了也就是字符串);
2)replaceAll的参数是regex,即基于正则表达式的替换,比如,可以通过replaceAll("\d", “*”)把一个字符串所有的数字字符都换成星号;