Java语法之Scanner类&String类&StringBuilder类&ArrayList类
目录
Java语法之Scanner类&String类&StringBuilder类&ArrayList类
一、Scanner类
1、基础知识
Scanner类在java.util
包下
Scanner类:用于获取键盘录入的数据。
Scanner类中的nextline()
方法:用于获取键盘录入字符串数据。
public class Main {
public static void main(String[] args) {
//创建对象(带参构造方法)
Scanner sc=new Scanner(System.in);
//获取键盘输入的数据
System.out.println("请输入一个字符串数据:");
//写完sc.nextLine()之后按Ctrl+Alt+V可以自动出现变量接收的提示
String line = sc.nextLine();
System.out.println("你输入的数据是:"+line);
}
}
二、String类
1、基础知识
String类在java.lang
包下。(java.lang
不需要导包)
String类代表字符串,java中所有的字符串都是String类的对象,即:java程序中所有的双引号字符串都是String类的对象。
2、构造方法
String类有很多种构造方法,常用的几种方法如下:
public class StringDemo {
public static void main(String[] args){
//创建空白字符串对象,不含任何内容
String s1=new String();
System.out.println("s1"+s1);
//根据字符数组的内容创建字符串对象
char[] chs={'a','b','c'};
String s2=new String(chs);
System.out.println("s2"+s2);
//根据字节数组的内容创建字符串对象
byte[] bys={97,98,99};
String s3=new String(bys);
System.out.println("s3"+s3);
//直接赋值的方式创建字符串对象(推荐使用)
String s4="abc";
System.out.println("s4"+s4);
}
}
3、字符串的比较
equals
——>比较的是字符串的内容是否相同。
==
——>比较的是字符串对象地址是否相同。
三、StringBuilder类
1、概述
如果进行字符串的拼接,每次拼接都会构建一个新的String
对象,既耗时又浪费内存空间,那么StringBuilder
类就可以解决这个问题。
StringBuilder是一个可变的字符串类(可变是指StringBuilder对象中的内容是可变的),相当于一个容器(可以类比于C++里的Vector),往StringBuilder里新增字符的时候不会创建新的对象,这样就拼接时就不需要每次都构造新的String
对象。
2、构造方法
public class StringBuilderDemo {
public static void main(String[] args){
//创建一个空白的可变字符串对象,没有任何内容
StringBuilder sb1=new StringBuilder();
System.out.println("sb1——>"+sb1);
System.out.println("sb1的长度——>"+sb1.length());
//根据字符串内容创建可变字符串对象
StringBuilder sb2=new StringBuilder("hello");
System.out.println("sb2——>"+sb2);
System.out.println("sb2的长度——>"+sb2.length());
}
}
3、添加方法和反转方法
由于append方法可以返回对象本身,所以在添加多个数据的时候可以进行链式添加。
public class StringBuilderDemo {
public static void main(String[] args){
StringBuilder sb=new StringBuilder();
//因为append方法返回对象本身,所以可以继续调用append方法,实现链式添加
sb.append("this ").append("is ").append("a ").append("text.");
System.out.println("sb——>"+sb);
//反转方法
sb.reverse();
System.out.println("反转sb——>"+sb);
}
}
4、StringBuilder与String的转换
StringBuilder
类中的append()
方法和reverse()
方法比较好用,但是在String
类里没有这两个方法,要想实现这两个方法就必须将String
转换成StringBuilder
。
1、StringBuilder转换为String
使用toString()
方法可以实现把StringBuilder
转换为String
。
2、String转换为StringBuilder
通过构造方法就可以把String转换为StringBuilder。
3、举例
public class StringBuilderDemo {
public static void main(String[] args){
StringBuilder sb1=new StringBuilder();
sb1.append("this ").append("is ").append("a ").append("text.");
//StringBuilder转换成String
String s1=sb1.toString();
System.out.println("s1——>"+s1);
String s2="hello";
//String转换成StringBuilder
StringBuilder sb2=new StringBuilder(s2);
System.out.println("sb2——>"+sb2);
}
}
四、ArrayList
ArrayList< E >
- 可以调整大小的数组
- < E >是泛型,就是什么类型都可以,如果是字符串数组就是ArrayList< String >,如果是Student类的数组,就是ArrayList< Student >
(相当于是C++里的Vector容器,但是类型要更多)
import java.util.ArrayList;
public class ArrayListDemo {
public static void main(String[] args) {
//构造方法
ArrayList<String> array =new ArrayList<>();
//添加元素
array.add("this "); //索引0
array.add("is "); //索引1
array.add("text "); //索引2
//在指定索引位置添加元素
array.add(2,"a ");
System.out.println(array);
//移除某元素
array.remove("is ");
System.out.println(array);
//移除某索引位的元素,返回被移除的元素
System.out.println(array.remove(2));
System.out.println(array);
//修改某索引位的元素,返回被修改的元素
System.out.println(array.set(0,"oh"));
System.out.println(array);
//返回指定索引处的元素
System.out.println(array.get(1));
//返回元素个数
System.out.println(array.size());
}
}