字符串相关操作
1.字符串变量
String s;
//String首字母大写,所以其是一个类,String的变量是对象的管理者而非所有者。
String首字母大写,所以其是一个类,String的变量是对象的管理者而非所有者。
2.对象的创建与初始化
String s ; //给s分配了空间,类名+变量名
s = new String(“a string”); //生成了s对象,初始化了s的实例变量
//两步合并为一步
String s = new String(“a string”);//上面两种为对类的创建及初始化
//或者
String s="a string";
步骤:
a.创建了一个String的对象
b.用“a string”初始化这个对象
c.创建管理这个对象的变量s,让s来管理这个变量
3.字符串连接
演示代码:
package spoc;
import java.util.Scanner;
public class print_out {
public static void main(String[] args) {
String s="hi";
System.out.println(24+12+s); //36hi
System.out.println(s+24+12); //hi2412
System.out.println(s+(24+12)); //hi36
}
}
结果输出:
注意:
a.按优先级,先遇到数字+数字+字符串,则数字相加+字符串输出
String s="hi";
System.out.println(24+12+s); //36hi
b.遇到字符串+数字+数字,则全部按字符串输出(因为按优先级先遇到字符串,所以后面的数字按字符串处理)
String s="hi";
System.out.println(s+24+12); //hi2412
c.若在字符串后的数字想以数值输出,则给数字加括号,改变优先级。
String s="hi";
System.out.println(s+(24+12)); //hi36
4.输入字符串
Scanner in=new Scanner(System.in );
String a = in.next(); //读入遇到空格,回车,tab结束
in.nextLine(); //读入一整行
5.判断两字符串内容是否相等
注意:
a. 判断两字符串是否为同一个字符串. System.out.println(a=="iii");
b.若要比较两字符串的内容是否相等要用,a.equals("iii"));(a为字符串变量)
package spoc;
import java.util.Scanner;
public class print_out {
public static void main(String[] args) {
//判断输入内容是否相等
Scanner in=new Scanner(System.in );
String a = in.next();
System.out.println(a=="iii"); //判断两字符串是否为同一个字符串
System.out.println(a.equals("iii"));//判断两字符串内容是否相等
}
}
若键入 iii输出结果为:
6.字符串运算
a.字符串比较大小
注意:若第二,三位都不同,只返回第二位差值
s1.compareTo(s2);
/*s1<s2,结果为负;
s1==s2,结果为0;
s1>s2,结果为正
*/
//compareToIgnoreCase可以不区分大小写的比较大写
b.获得字符串长度
s.length()
c.访问String中的字符
s.charAt(2)//访问s字符串中的第二号字符,从0开始编号
d.得到字符串
s.substring(2);//截取2号位置以后(包括2号)的字符串,
s.substring(2,5);//截取2到5之前(即到第四位);
e.寻找字符
s.indexOf("4");//输出所在位置,若不存在输出-1;
s.indexOf("微笑");//输出第一个元素所在位置,若不存在输出-1;
//需返回字符串中第二次出现a的位置,需设置变量loc标记第一次出现的位置
int loc=s.indexOf("a");
s.indexOf("a",loc+1);//寻找从loc+1开始,下一个字符"a"的位置
f.其他String操作
s.toUpperCase();//全部转大写
s.toLowerCase();//全部转小写
s.replace("a","cj");//把所以的a替换成cj
s.trim();//删掉两边的字符串
s.startsWith("a");//字母是否以"a"开头
s.endsWith("h");//字母是否以"h"结尾
代码:
第a.b.c段代码:
package spoc;
import java.util.Scanner;
public class str2 {
public static void main(String[] args) {
//都不能修改字符串本身
String s="abaa";
String k="Abvca";
String m="01234微笑";
//a.比较大小
System.out.println("abbb".compareTo(s));//值为1
//"abc"与s的差值,若第二,三位都不同,只返回第二位差值
System.out.println(k.compareTo(s));
//b.获得字符串长度
//c.访问String中的字符
System.out.println(k.charAt(2));//输出第二号元素(从0开始编号)
for(int i=0;i<s.length();i++)//遍历s中的元素
{
System.out.print(s.charAt(i));
}
}
}
输出结果:
第d.e.f段代码:
package spoc;
import java.util.Scanner;
public class str2 {
public static void main(String[] args) {
String s="abaa";
String k="AbvcA";
String m="01234微笑";
//d.得到字符串
System.out.println(m.substring(2));//截取2号位置以后(包括2号)的字符串;234微笑
System.out.println(m.substring(2,5));//截取2到5之前()即到第四位;234,
//e.寻找字符
System.out.println(s.indexOf("4"));//输出所在位置,若不存在输出-1;
System.out.println(m.indexOf("微笑"));//输出第一个元素所在位置,若不存在输出-1;
//寻找第二次出现的位置
int loc=k.indexOf("A");
System.out.println(k.indexOf("A",loc+1));//寻找从loc+1开始,下一个字符"a"的位置
//f.其他String操作
System.out.println(s.toUpperCase());//全部转大写
System.out.println(s.toLowerCase());//全部转小写
System.out.println(s.replace("a","cj"));//把所以的a替换成cj
s.trim();//删掉两边的字符串
System.out.println(s.startsWith("a"));//字母是否以"a"开头
System.out.println(s.endsWith("h"));//字母是否以"h"结尾
}
}
输出结果: