import java.util.Scanner;
/*
* Scanner:用于获取键盘录入数据
* public String nextline():获取键盘录入字符串数据
*/
public class ScannerLearn {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入数据:");
String line = sc.nextLine();
System.out.println("您输入的数据是:"+line);
/*
* String构造方法
* public String() 创建空白字符串对象
* public String(char[] chs) 根据字符数组的内容,来创建字符串对象
* public String(byte[] bys) 根据字节数组的内容,来创建字符串对象
* String s = "abc" 直接赋值(推荐使用)*/
String s1 = new String();
System.out.println("s1:"+s1); //s1:
char [] chs = {'a','b','c'};
String s2 = new String(chs);
System.out.println("s2:"+s2); //s2:abc
byte[] bys = {97,98,99}; //97字节底层对应的就是a
String s3 = new String(bys);
System.out.println("s3:"+s3); //s3:abc
//以下存储内存地址不一样
String s4 = new String(chs);
String s5 = new String(chs);
//以下存储内存地址一样
String s6 = "abc";
String s7 = "abc";
//比较的为地址值
System.out.println(s4==s5); //false
System.out.println(s6==s7); //true
System.out.println(s4==s6); //false
//比较数据值
System.out.println(s4.equals(s5)); //true
System.out.println(s6.equals(s7)); //true
System.out.println(s4.equals(s6)); //true
//遍历字符串
String name = "YinRuMin";
for(int i=0;i<name.length();i++){
System.out.println(name.charAt(i));
}
//统计字符次数,大小写和数字分别统计
//Scanner ss = new Scanner(System.in);
System.out.println("请输入字符串:");
String word = sc.nextLine();
int uw = 0;
int lw = 0;
int dig = 0;
for(int i=0;i<word.length();i++){
if(word.charAt(i)>='A'&&word.charAt(i)<='Z'){
uw+=1;
}else if(word.charAt(i)>='a'&&word.charAt(i)<='z'){
lw+=1;
}else if(word.charAt(i)>='0'&&word.charAt(i)<='9'){
dig+=1;
}
}
System.out.println("大写字母有:"+uw+"个");
System.out.println("小写字母有:"+lw+"个");
System.out.println("数字字符有:"+dig+"个");
//StringBuild
StringBuilder sb = new StringBuilder();
System.out.println("sb:"+sb);
System.out.println("sb.length():"+sb.length());
StringBuilder sb2 = new StringBuilder("abdcdd");
System.out.println("sb2:"+sb2);
System.out.println("sb2.length():"+sb2.length());
StringBuilder sb3 = sb2.append("eee");
System.out.println("sb2:"+sb2); //sb2:abdcddeee
System.out.println("sb3:"+sb3); //sb2:abdcddeee
System.out.println(sb2==sb3); //true
sb.append(100);
sb.append("yin");
sb.append("xxx");
System.out.println("sb:"+sb); //sb:100yinxxx
sb.append(22).append("ccc").append("fff"); //链式拼接
System.out.println("sb:"+sb); //sb:100yinxxx22cccfff
sb.reverse(); //反转
System.out.println("sb:"+sb); //sb:fffccc22xxxniy001
//String转换为StringBuilder
String sb6 = "Iverson";
StringBuilder sb7 = new StringBuilder(sb6);
System.out.println("sb7:"+sb7);
//StringBuilder转换为String
StringBuilder sb4 = new StringBuilder();
sb4.append("Iverson");
//String sb5 = sb4;错误方法
String sb5 = sb4.toString();
System.out.println("sb5:"+sb5);
//拼接字符串
int[] arr = {1,2,3,4,5,6};
String s = arrayToString(arr); //普通拼接
System.out.println("s:"+s); //s:[1, 2, 3, 4, 5, 6]
String sb8 = arrayToString2(arr); //StringBuilder拼接
System.out.println("sb8:"+sb8); //sb8:[1,2,3,4,5,6]
}
public static String arrayToString(int[] arr){
String s = "";
s +="[";
for(int i = 0;i<arr.length;i++){
if (i==arr.length-1){
s+=arr[i];
}else {
s+=arr[i];
s+=", ";
}
}
s+="]";
return s;
}
public static String arrayToString2(int[] arr){
StringBuilder s = new StringBuilder();
s.append("[");
for(int i = 0;i<arr.length;i++){
if (i==arr.length-1){
s.append(arr[i]);
}else {
s.append(arr[i]).append(",");
}
}
s.append("]");
String sb = s.toString();
return sb;
}
}