****String类总结:**
统计一个字符串中大写小写字母和数字的个数:
package zz.itheima.string;
import java.util.Scanner;
public class CalcNum {
//示例:统计一个字符串中大写小写字母和数字的个数
public static void main(String[] args) {
System.out.println("请任意输入一个字符串:");
Scanner sc=new Scanner(System.in);
String val=sc.nextLine();
int n1=0;
int n2=0;
int n3=0;
//1.先转换为byte类型的数组
byte[] temp=val.getBytes();
//2.循环遍历,判断范围,计数
for (int i = 0; i < temp.length; i++) {
byte t=temp[i];
//48-57是数字 65-90是大写字母 97-122是小写字母
if(t>=48&&t<=57)
n1++;
if(t>=65&&t<=90)
n2++;
if(t>=97&&t<=122)
n3++;
}
System.out.println("数字有"+n1+",大写字符有"+n2+"小写字符有"+n3);
}
}
字符串的分割:
package zz.itheima.string;
import java.util.Scanner;
public class TestCaseCast {
//字符串的分割
public static void main(String[] args) {
//练习:把任意字符串的首字母转成大写,其余为小写
System.out.println("请任意输入一个字符串:");
Scanner sc=new Scanner(System.in);
String val=sc.nextLine();
String first=val.substring(0, 1);
first=first.toUpperCase();
String last=val.substring(1);
last=last.toLowerCase();
System.out.println(first+last);
}
}
字符串的获取:
package zz.itheima.string;
import java.util.Scanner;
public class TestHuoqu {
public static void main(String[] args) {
// int length()
String s1="hlelhlo";
System.out.println(s1.length());//7
// char charAt(int index)
System.out.println(s1.charAt(3));//l
// int indexOf(int ch) 和int indexOf(String str); 找不到返回-1
System.out.println(s1.indexOf("hl"));//0
// int indexOf(int ch,int fromIndex)和int indexOf(String str,int fromIndex)
System.out.println(s1.indexOf("hl",3));//4,从第三个位置开始首次出现的位置
// int lastIndexOf(String s)
System.out.println("last"+s1.lastIndexOf("hl"));//last4
// int lastIndexOf(String s,int fromIndex)
System.out.println("last"+s1.lastIndexOf("hl",3));//last0
// String substring(int start)
System.out.println(s1.substring(2)); //包含开始下标的字符
// String substring(int start,int end)
System.out.println(s1.substring(2, 4)); //不包含结束下标的字符
//示例:判断电子邮件的格式是否正确 zhangsan@qq.com
System.out.println("请输入你的邮箱地址:");
Scanner sc=new Scanner(System.in);
String email=sc.nextLine();
//必须有@ 和 . @必须在.之前
if(email.indexOf("@")!=-1&&email.indexOf("@")<email.indexOf("."))
System.out.println("正确");
else
System.out.println("不正确");
//练习:换行输出字符串中的每一个字符
for (int i = 0; i < email.length(); i++) {
char temp=email.charAt(i);
System.out.println(temp);
}
}
}
7
l
0
4
last4
last0
elhlo
el
请输入你的邮箱地址:
lqc@qq.com
正确
字符串的判断:
package zz.itheima.string;
public class TestJudge {
public static void main(String[] args) {
String s1 = "hello";
String s2 = "hEllo";
//boolean equals(Object obj)
System.out.println(s1.equals(s2));//false
//boolean equalsIgnoreCase(String str)
System.out.println(s1.equalsIgnoreCase(s2));//true
//boolean contains(String str)
System.out.println(s1.contains("he"));//true
//boolean startsWith(String str)
System.out.println(s1.startsWith("h"));//true
//boolean endsWith(String str)
System.out.println(s1.endsWith("llo"));//true
//boolean isEmpty() “” null
String s3=null;//没有开辟堆内存
//s3.length();
String s4="";
System.out.println(s4.isEmpty());
System.out.println(s4.length());//0
}
}
运行结果:
false
true
true
true
true
true
0
模拟用户登录:
package zz.itheima.string;
import java.util.Scanner;
public class TestLogin {
public static void main(String[] args) {
//示例:模拟管理员登录(账号和密码),给三次机会,并提示还有几次(假设正确的账号和密码是: admin 0000)
Scanner sc=new Scanner(System.in);
for(int j=1;j<4;j++)
{
//1.给出提示信息(账号)
System.out.println("请输入账号:");
String account=sc.nextLine();
//2.给出提示信息(密码)
System.out.println("请输入密码:");
String pwd=sc.nextLine();
//3.判断
if(account.equalsIgnoreCase("admin")&&pwd.equals("abcd"))
{
System.out.println("登录成功");
break;
}
else {
System.out.println("登录失败,你还剩"+(3-j)+"次机会");
}
}
}
}
String测试类:
package zz.itheima.string;
public class TestString {
//String测试类
public static void main(String[] args) {
//1.String类是一个特殊的引用类型,可以像基本数据类型一样使用
int j = 10;
String s1 = "hello";
//2。String类的构造方法
//空构造public String()
String s2 = new String();//已经开辟了堆内存
System.out.println("s2="+s2);
//参数为字节数组 public String(byte[] bytes)
byte[] bytes = {97,98,99};
String s3 = new String(bytes);
System.out.println("s3="+s3);
//参数为字符数组 public String(char[] values)
char[] chars = {'a','b','c'};
String s4 = new String (chars);
System.out.println("s4="+s4);
//String对象的不可变性,也就是一旦初始化后值不可以改变
String s5 = new String("hello");
s5 += ",world";//重新指向了一个新的地址,原来的地址(存放hello)还存在,只是没有引用了,只能被垃圾回收掉了。
System.out.println("s5="+s5);
System.out.println("**********************");
System.out.println("abc"=="ab"+"c");
String s6 = "abc";
String s7 = "ab";
String s8 = "c";
System.out.println(s6==s7+s8);
}
}
运行结果:
s2=
s3=abc
s4=abc
s5=hello,world
**********************
true
false
字符串的转换:
package zz.itheima.string;
public class TestZhuanhuan {
public static void main(String[] args) {
//字符串转换测试
// byte[] getBytes()
String s1="hello";
byte[] b=s1.getBytes();
for (int i = 0; i < b.length; i++) {
System.out.println(b[i]);
}
// char[] toCharArray()
char[] c=s1.toCharArray();
for (int i = 0; i < c.length; i++) {
System.out.println(c[i]);
}
// static String valueOf(char[] chs)把字符数组转化为字符串
String s2=String.valueOf(c);
System.out.println(s2);
// static String valueOf(基本数据类型 i) 类似于“+”,但是要比“+”效率要高,把基本数据类型转化为字符串
System.out.println(String.valueOf(10.0));
//+作用是连接字符串
System.out.println(s2+"asdf");
//+还能起到类型转换的作用,其他类型会转换为字符串的
int n=10;
System.out.println(n+"");
// String toLowerCase()
String s3="heLLo";
System.out.println(s3.toLowerCase());
// String toUpperCase()
System.out.println(s3.toUpperCase());
// String concat(String str) 类似于 “+”
s3=s3.concat(",world");
System.out.println(s3);
}
}
运行结果:
104
101
108
108
111
h
e
l
l
o
hello
10.0
helloasdf
10
hello
HELLO
heLLo,world
其他的一些常用方法:
package zz.itheima.string;
public class TestOther {
public static void main(String[] args) {
// 替换功能:
// String replace(char old,char new)
String s1="abcdecfg";
s1=s1.replace('c', 'x');
System.out.println(s1);
// String replace(String old,String new)
s1="abcdecfg";
s1=s1.replace("de", "xyz");
System.out.println(s1);
// 分割 String[] split(String regex)
String s2="abc-defg-hijk";
String[] ss=s2.split("-");
for (int i = 0; i < ss.length; i++) {
System.out.println(ss[i]);
}
String s3="-abc-defg";
String[] st=s3.split("-");
System.out.println(st.length);
// 去除字符串两端的空格 String trim()
String s4=" hello world ";
System.out.println(s4.trim());
// 练习1:把字符串中的“o”替换成“0”,“l”替换成“1”
String s5="hellolosdflool";
s5=s5.replace("o", "0").replace("l", "1");
System.out.println(s5);
// 练习2:给一个字符串"5 , 4 , 3 ",然后分别换行输出
String s6="1,2,3,4,5";
String[] temp=s6.split(",");
for (int i = 0; i < temp.length; i++) {
System.out.println(temp[i]);
}
}
}
运行结果:
abxdexfg
abcxyzcfg
abc
defg
hijk
3
hello world
he11010sdf1001
1
2
3
4
5
JavaSE(05)(String类)
最新推荐文章于 2024-04-12 18:18:14 发布