字符串构造的3种方法
字符串直接创建的1种方法
使用String str = “”;//不管new不new直接写上""就是字符串对象。jvm会自动给new
package cn.study.String类;
public class StringClassDemo {
public static void main(String[] args) {
//1使用空参数构造
String str1 = new String();
int len1 = str1.length();
System.out.println("使用空参数构造的字符串"+str1+":"+"长度:"+len1);
//根据字符数组创建字符串
char str2[] = {'a','b','c'};
String str2_2 = new String(str2);
System.out.println("使用字符数组构造的字符串"+str2_2);
//根据字节数组创建的字符串
byte str3[] = {97,98,99};
String str33 = new String(str3);
System.out.println("使用byte字节数组构造的字符串"+str33);
//直接创建字符串
String str4 = "abc";
System.out.println(""+str4);
}
}
字符串的常量值
堆内存中有一块字符串常量此
对于引用类型来说,==是进行内存地址值的比较
双引号直接写的字符串在常量池中。new的不值池中
小练习 把一个数组按照自定的格式 拼接成一个字符串
package Demo1;
import java.lang.reflect.Array;
public class connect {
public static void main(String[] args) {
//把一个数字安装自定的格式输出 [1#2#3#4]
int[] arrayA = new int[]{
1,2,3,4
};
System.out.println(arToStr(arrayA));
}
public static String arToStr(int[] array1){
String connectStr = "[";
for (int i = 0; i < array1.length; i++) {
if(i != array1.length-1){
connectStr += array1[i]+"@";
}else {
connectStr += array1[i];
}
}
return connectStr+"]";
}
}
小练习
package Demo1;
import java.util.Scanner;
public class Practice002 {
// 是用键盘输入,并且统计其中各种字符输入的次数
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入");
String input = sc.next();
int daxie=0;
int xiaoxie=0;
int qita=0;
int shuzi=0;
char[] inputA = input.toCharArray();
for (int i = 0; i < inputA.length; i++) {
if(inputA[i]>='0' && inputA[i]<='9' ){
shuzi++;
}else if (inputA[i]>='A' && inputA[i]<='Z' ){
daxie++;
}else if(inputA[i]>='a' && inputA[i]<='z'){
xiaoxie++;
}else{
qita+=1;
}
}
System.out.println("当前大写:"+daxie);
System.out.println("当前小写:"+xiaoxie);
System.out.println("当前数字:"+shuzi);
System.out.println("当前其他字符:"+qita);
}
}