字符串
API:应用程序编程接口;
javaApI:指的是JDK中提供的各种功能的java类
package itheima;
import java.util.Scanner;
public class ScannerDemo {
public static void main(String[] args) {
//创建对象
Scanner sc = new Scanner(System.in);
//接收数据
System.out.println("请输入一个字符串数据");
String line = sc.nextLine();
//ctrl + alt + v快速生成
//输出结果
System.out.println("你输出的结果是:"+line);
}
}
String概述:
String类在java.lang包下,所以使用时不需要导包;
String类代表字符串,java程序中的所有字符串文字都被实现为此类的实例,也就是说,java程序中所有的双引号字符串,都是String类的对象
字符串特点:字符串不可改变,他的在创建后不能被更改;虽然String的值是不可改变的但是它们可以被共享;字符串效果上相当于字符数组(char[]),但是底层原理是字节数组(byte[]).
string构造方法:
public String(); 创建一个空白字符串对象,不含有任何内容;
public String(char[] chs);根据字符数组的内容,来创建字符串对象;
public String(byte[] bys);根据字节数组的内容,来创建字符串对象
String s = "adc";直接复制的方式创建字符串对象,内容就是abc
package itheima;
import java.util.Scanner;
public class ScannerDemo {
public static void main(String[] args) {
//public String(); 创建一个空白字符串对象,不含有任何内容;
String s1 = new String();
System.out.println("s1:"+s1);
//public String(char[] chs);根据字符数组的内容,来创建字符串对象;
char[] chs = {'a','b','c'};
String s2 = new String(chs);
System.out.println("s2:"+s2);
//public String(byte[] bys);根据字节数组的内容,来创建字符串对象
byte[] bys = {97,98,99};
String s3 = new String(bys);
System.out.println("s3:"+s3);
//String s = "adc";直接复制的方式创建字符串对象,内容就是abc
String s4 = "abc";
System.out.println("s4:"+s4);
}
}
推荐使用直接赋值
String对象的特点
通过new创建的字符串对象,每一次new都会申请一个内存空间,虽然内容相同,但是地址值不同;
以”“方式给出的字符串,只要字符串序列相同(顺序和大小写),无论在程序代码中出现几次,JVM都只会建立一个String对象,并在字符串池中维护。
字符串的比较
使用==作比较
基本类型:比较的是数据值是否相同
引用类型:比较的是地址值是否相同
字符串是对象,他比较内容是否相同,是通过一个方法来实现的,这个方法叫:equals()
public boolean equals(Object anObject);将此字符串与指定对象进行比较,由于我们比较的是字符串对象,所以参数直接传递一个字符串
例:s3.equals(s4);
遍历字符串
public char charAt(int index);返回指定索引处的char值,字符串的索引也是从0开始
public int length();返回此字符串的长度
数组的长度:数组名.length
字符串长度:字符串长度.length
package itheima;
import java.util.Scanner;
public class ScannerDemo {
public static void main(String[] args) {
//录入一个字符串
Scanner sc =new Scanner(System.in);
System.out.println("输入一个字符串:");
String line = sc.nextLine();
//获取字符串中每个字符
for (int i=0;i<line.length();i++){
System.out.println(line.charAt(i));
}
}
}
统计字符次数
大写字母:ch>'A'&&ch<'Z'
小写字母:ch>'a'&&ch<'z'
数字:ch>'0'&&ch<'9'
package itheima;
import java.util.Scanner;
public class ScannerDemo {
public static void main(String[] args) {
//录入一个字符串
Scanner sc =new Scanner(System.in);
System.out.println("输入一个字符串:");
String line = sc.nextLine();
//获取字符串中每个字符
int bigCount = 0;
int smallCout = 0;
int numberCout = 0;
int elseCout = 0;
for (int i=0;i<line.length();i++){
// System.out.println(line.charAt(i));
//统计字符串中三种字符个数
if (line.charAt(i)>='A' && line.charAt(i)<='Z'){
bigCount++;
}else if (line.charAt(i)>='a' && line.charAt(i)<='z'){
smallCout++;
}else if (line.charAt(i)>='0'&&line.charAt(i)<='9'){
numberCout++;
}else{
elseCout++;
}
}
System.out.println(bigCount);
System.out.println(smallCout);
System.out.println(numberCout);
System.out.println(elseCout);
}
}
StringBUilder是一个可变的字符串类,我们可以把它看成是一个容器这里的可变指的是StringBuilder对象中的内容是可变的
String内容不可变
StringBuilder内容可变(解决String占用空间过多的问题)
-
-
StringBuilder()
构造一个没有字符的字符串构建器,初始容量为16个字符。
-
-
-
StringBuilder(String str)
构造一个初始化为指定字符串内容的字符串构建器。
-
-
-
StringBuilder
reverse()
导致该字符序列被序列的相反代替。
-
-
-
StringBuilder
append(任意类型)
添加数据并返回对象本身
-
package itheima;
import java.util.Scanner;
public class ScannerDemo {
public static void main(String[] args) {
StringBuilder s = new StringBuilder();
//链式编程
s.append("java").append(100).append('A');
System.out.println(s);
System.out.println(s);
}
}
StringBuilder和String相互转换
public String toString();通过toString()就可以实现把StringBuilder转换为String
public StringBuilder(String s);通过构造方法就可以实现把String转换为StringBuilder
package itheima;
import java.util.Scanner;
public class ScannerDemo {
public static void main(String[] args) {
StringBuilder s = new StringBuilder();
//链式编程
s.append("java").append(100).append('A');
//Stringbuilder转换String
String s1 = s.toString();
//String转换Stringbuilder
String s2 = "hello";
StringBuilder s3 = new StringBuilder(s2);
}
}
字符串反转
package itheima;
import java.util.Scanner;
public class ScannerDemo {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("输入一个字符串:");
String line = sc.nextLine();
String s3 = myreserve(line);
System.out.println("反转:"+s3);
}
public static String myreverse(String s) {
StringBuilder ss = new StringBuilder(s);
StringBuilder s2 = ss.reverse();
String s1 = s2.toString();
return s1;
//可替代
return new StringBuilder(s).reverse().toString;
}
}
集合基础
集合概述:集合类 提供一种存储空间可变的存储模型,存储的数据容量可以发生改变
ArrayList<E>:1.可调整大小的数组实现2.<E>是一种特殊的数据类型,泛型。
例:ArrayList<String> ArrayList<Student>
构造方法:
public ArrayList(); 创建一个空的集合对象
添加方法:
public boolean add(E e);将指定的元素追加到刺激和的末尾
public void add(int index,E element);在集合中的指定位置插入指定的元素
package itheima;
import java.util.ArrayList;
public class ScannerDemo {
public static void main(String[] args) {
ArrayList<String>arr = new ArrayList<String>();
arr.add("java");
arr.add("100");
System.out.println(arr);
arr.add(1,"se");
System.out.println(arr);
}
}
-
-
int
size()
返回此列表中的元素数。
-