java入门(二十八) | API(二)之String
String
2.1 特点
- 是一个封装char[]数组的对象
- 字符串不可变
2.2 创建String对象
如果是第一次使用字符串,java会在字符串常量池创建一个对象。
再次使用相同的内容时,会直接访问常量池中存在的对象。
方式1:
String(char[] value)
分配一个新的 String,使其表示字符数组参数中当前包含的字符序列。
String()
初始化一个新创建的 String 对象,使其表示一个空字符序列。
方式2:String name= ”abc”;
2.3 常见方法
length()
charAt()
lastIndexOf()
substring()
equals()
startsWith()
endsWith()
split()
trim() 去除字符串两端的空格
2.4 测试
package cn.qile.stringdemo;
import java.util.Arrays;
import java.util.Scanner;
//测试String类
public class Test1_Stringdemo {
public static void main(String[] args) {
//1、创建String对象
char[] a = new char[] {"h","e","l","l","o"};
String str = new String(a);//存在堆内存中
//存在堆内存中的常量池中,如果常量池中存过,直接用-提高效率
String str2 = "hello";
//2、调用功能
//TODO 测试String类的其他方法
System.out.println(str.charAt(4));//返回指定索引处的 char 值
System.out.println(str.endsWith("lo"));//测试此字符串是否以指定的后缀结束。
//默认Object里的equals()用来比对象的地址,String已经重写了equals(),用来把字符串存着的值进行比较
System.out.println(str.equals("hello"));//true
byte[] bs = str.getBytes();//string转byte[]
System.out.println(Arrays.toString(bs));
System.out.println(str.hashCode());//哈希码值
str="abcdabe";
System.out.println(str.indexOf("a"));//a第一次出现的索引值
System.out.println(str.lastIndexOf("a"));//a最后一次出现的索引值
System.out.println(str.length());//字符串长度 -- 7
System.out.println(str.startsWith("abc"));//true
System.out.println(str.toLowerCase());//将所有大写转换为小写 -- abcdabe
System.out.println(str.toUpperCase());//将所有小写转换为大写 -- ABCDABE
System.out.println(str.substring(3));//截取字符串,返回字符串始于指定索引处的字符,一直到此字符串末尾 -- dabe
//substring(m,n)--m是开始的索引,n是结束的索引,含头不含尾--[m,n)
System.out.println(str.substring(3,5));//da
str=" a bc ";
System.out.println(str.trim());//a bc
System.out.println(String.valueOf(1000)+1);//10001
System.out.println("==============");
//接收键盘输入的一串数字,提取出来求和
String num = new Scanner(System.in).nextLine();
//遍历得到字符串的每个元素
int count = 0;//定义变量记录整数的和
for(int i = 0 ; i < num.length() ; i++) {
char c = num.charAt(i);
//把字符变成整数,是指把"1"变成数字49,拿着数字求和
Integer sum = Integer.valueOf(c);
//把数字求和
count = count+sum;
}
System.out.println(count);
}
}