String:
就是有很多字符连接在一起的我么称为字符串,字符串在开发中是非常常见的
所以我么一定要好好掌握字符串,而JAVA方便我么操作字符串也提供我么String这个类了
首先我么先来了解一下String这个类的几种构造方法把,并且我也会体现案例的
String:构造方法。
A:String()
案例:
String str = new String();
B:String(byte[] bytes)
案例:
byte bys[] = {97,98,99,100,101};
String str2 = new String(bys); //将byte字节数组转换成String类型
System.out.println("str2 = "+str2);//打印出abcde,将数字转换成字符
C:String(byte[] bytes, int index, int length)
案例:
byte by[] = {97,98,99,100,101};
String str3 = new String(by,1,3); //指定下标位置进行转换成字符串
System.out.println("str3 = "+str3);
D:String(char[] value)
案例:
char[] ch = {'H','a','c','k','e','r'};
String str4 = new String(ch);
System.out.println("str4 = "+str4);
E:String(char[] value, int index, int count)
案例:
char[] chs = {'S','t','r','i','n','g'};
//System.out.println(chs.length);
String str5 = new String(chs,3,3); //这里不可以超过下标6否则抛出下标越界异常
System.out.println("str5 = "+str5);
F:String(String str)
案例:
String str6 = new String("hello");
System.out.println("str6 = "+str6);
G:String s = "hello";
案例:
String str7 = "world";
System.out.println("str7 = "+str7);
上面是字符串的一些构造方法,但是都不常用,作为了解即可,一般都是用第七种方式初始化
字符串。
好了,既然我么已经会初始化字符串了,那下面我么在多学习一些其他的方法把
下面是需要学习的方法:
String类的判断功能:
boolean equals(Object obj):比较字符串的值是否相同。
案例:
String str = "hello";
System.out.println("admin".equals(str));//字符串的内容不相同返回false
boolean equalsIgnoreCase(String str):比较字符串的值是否相同,不考虑大小写。
案例:
String str2 = "HELLO";
System.out.println("str2 = "+"HELLo".equalsIgnoreCase(str2));
boolean contains(String str):包含,判断str这个字符串在字符串对象中是否存在。
案例:
String str3 = "world";
System.out.println("str3 = "+str3.contains("world"));
boolean startsWith(String str):判断字符串对象是否以str开头
案例:
String str4 = "Hacker";
System.out.println("str4 = "+str4.startsWith("Hacker")); //true
boolean endsWith(String str):判断字符串对象是否以str结尾
案例:
String str5 = "Hacker";
System.out.println("str5 = "+str5.endsWith("r")); //true
boolean isEmpty():判断字符串是否为空
案例:
String str6 = "Hacker";
System.out.println(str6.isEmpty());//false
学过上面这些方法以后我么做一个小题目把
题目:模拟登录,给三次机会,并提示还有几次
public class StringTest5
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
String username;
String password;
int count = 3;
while(count!=0)
{
System.out.println("请输入账号:_");
username = sc.nextLine();
System.out.println("请输入密码:");
password = sc.nextLine();
if(username.equals("admin") && password.equals("admin888"))
{
System.out.println("登陆成功,欢迎进入管理界面");
break;
}
else
{
System.out.println("账号或者密码输入错误请重新输入,你还有"+(--count)+"次机会");
}
}
}
}
看完上面的例子后,我么再来学习一些API中的方法把
String类的获取功能:
int length():返回的是字符串对象的长度。
案例:
String str = "hello";
System.out.println("str = "+str.length());
char charAt(int index):返回指定索引处的字符值。
案例:
String str2 = "Hacker";
char ch = str2.charAt(3);
System.out.println("str2 = "+ch);//k
int indexOf(int ch)
案例:
String str3 = "HelloWorld";
int n = str3.indexOf('W');
System.out.println("n = "+n);//5
int indexOf(String str):返回字符或字符串在字符串对象中第一处出现的索引。
案例:
String str4 = "HelloWorld";
int i = str4.indexOf("World");
System.out.println("i = "+i);//5
int indexOf(int ch,int fromIndex)
案例:
String str5 = "Sop Long";
int t = str5.indexOf('L',3);
System.out.println("t = "+t);
int indexOf(String str,int fromIndex):从指定的位置开始,返回字符或字符串在字符串对象中第一处出现的索引。
案例:
String str6 = "China";
int index = str6.indexOf("ina", 1);
System.out.println("index = "+index);
String substring(int start):从指定位置开始截取一个字符串,默认到结尾。
案例:
String str7 = "I'm Love JAVA!";
String s = str7.substring(3);
System.out.println("s = "+s);
String substring(int start,int end):从开始位置到结束位置见进行截取字符串。
案例:
String str8 = "I'm Love C++";
String s1 = str8.substring(4, 12);
System.out.println("s1 = "+s1);
经过上面的API学习,接下来我么再做个练习把
题目:
请从键盘录入一个字符串(只包含大小写英文字母和数字),
请统计出这个字符串中的每种类型的字符有多少个?
代码实现:
import java.util.Scanner;
public class StringTest7
{
public static void main(String[] args)
{
//计算大写字符
int big = 0;
//计算小写字符
int small = 0;
//计算数字
int num = 0;
Scanner sc = new Scanner(System.in);
System.out.println("请输入一串字符:");
String str = sc.nextLine();
for(int x=0;x<str.length();x++)
{
char ch = str.charAt(x);
if(ch >= 'A' && ch <= 'Z')
{
big++;
}
else if(ch >='a' && ch<= 'z')
{
small++;
}
else
{
num++;
}
}
System.out.println("大写字母有:"+big+"个");
System.out.println("小写字母有:"+small+"个");
System.out.println("数字有:"+num+"个");
}
}
好了上面的学习还是不算够的,我么现在,在学一些常用的API中的方法把,其实这些方法记不住是没关系的
因为没有人记得住这么多的,所以只要会查看API就行了。
需要学习的方法:
String类的转换功能:
byte[] getBytes():把字符串对象变成一个字节数组
案例:
String str = "abcde";
byte by[] = str.getBytes();
for(int x=0;x<str.length();x++)
{
System.out.println("by = "+by[x]);
}
char[] toCharArray():把字符串对象变成一个字符数组
案例:
String str2 = "Hacker";
char ch[] = str2.toCharArray();
for(int x=0;x<str2.length();x++)
{
System.out.println("ch = "+ch[x]);
}
static String copyValueOf(char[] chs):静态方法把字符数组变成字符串
案例:
char chs[] = {'a','b','c','d','e'};
String str3 = String.copyValueOf(chs);
System.out.println("str3 =" +str3);//abcde
static String valueOf(char[] chs):静态方法把字符数组变成字符串
案例:
char c[] = {'a','r','r','l','i','s','t'};
String str4 = String.valueOf(c);
System.out.println("str4 = "+str4);
static static valueOf(int i)基本类型
案例:
int x=10;
String str5 = String.valueOf(x);
System.out.println("str5 = "+str5);//10
String toLowerCase():把字符串变成小写
案例:
String str = "HELLOWORLD";
System.out.println("str = "+str.toLowerCase());
String toUpperCase():把字符串变成大写
案例:
String str2 = "helloworld";
System.out.println("str2 = "+str2.toUpperCase())
String concat(String str):字符串的连接
案例:
String str3 = str.concat(str2);
System.out.println("str3 = "+str3)
好了,又学习一些常用的API,下面我么在做一个练习把
键盘录入一个字符串,请把首字母变成大写,其他字母变成小写输出。
举例:
hELLOWORLD
转 Helloworld
代码体现:
import java.util.Scanner;
public class StringTest10
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
System.out.println("请输入字符串:");
String str = sc.nextLine();
String str2 = str.substring(0,1);
String str3 = str.substring(1);
String str4 = str2.toUpperCase().concat(str3.toLowerCase());
System.out.println("str4 = "+str4);
}
}
最后呢,我么在学习一些其他的字符串功能吧,虽然不常用额,但是可以作为了解哦
替换功能:
String replace(char old,char new)
案例:
String str = "HelloWorld";
System.out.println("替换前str = "+str);
String s = str.replace('W', '0');
System.out.println("替换后str = "+s);
String replace(String old,String new)
案例:
String str2 = "HackerChian";
System.out.println("替换前str2 = "+str2);
String s2 = str2.replace("Chian", "work");
System.out.println("替换后s2 = "+s2);
String[] split(String regex) 切割
案例:
String str = "Hel-loWorl-d";
String s[] = str.split("-");
System.out.println(s[0]);
System.out.println(s[1]);//loworl
System.out.println(s[2]);
String trim() 去除字符串两端空格
案例:
String str2 = " Hac ker ";
System.out.println("str2没变化前str2 = "+str2);
String s2 = str2.trim();
System.out.println("变化后:s2 = "+s2);
int compareTo(String str) 按字典顺序比较两个字符串
案例:
String str3 = "HelloWorld";
int n = str3.compareTo("admin");
System.out.println("n = "+n); //H-a=? H=72 a=97 72-97=-25
int compareToIgnoreCase(String str)
案例:
String str4 = "ABCDEF";
int i = str4.compareToIgnoreCase("ABCDE");
System.out.println("i = "+i);
下面我来在来做个小练习把:
获取一个字符串中指定子串出的次数。比如说“hanbasdnbafllgnbahjnbakqqqqlnbaxi”
在这个字符串中,多有个nba?
代码体现:
import java.util.Scanner;
class CmpTest
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
System.out.println("请输入一串字符:");
String str = sc.nextLine();
int count = 0;
int index = str.indexOf("nba");
while(index != -1)
{
if (index != -1)
{
++count;
str = str.substring(index+"nba".length());
index = str.indexOf("nba");
}
}
System.out.println("总过有"+count+"相同字符串");
}
}
还有一题就是:
对字符串中字符进行自然顺序排序
"basckd" -- "abcdks"
代码体现:
import java.util.Arrays;
import java.util.Scanner;
public class StringTest14
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
System.out.println("请输入一串字符:");
String str = sc.nextLine();
//将字符串转换成每个字符
char ch[] = str.toCharArray();
//然后使用每个字符进行比较大小
Arrays.sort(ch);
//最后将比较好了的字符转换成字符串
String str2 = String.copyValueOf(ch);
//最后将转换好了的字符串输出
System.out.println(str2);
}
}
就是有很多字符连接在一起的我么称为字符串,字符串在开发中是非常常见的
所以我么一定要好好掌握字符串,而JAVA方便我么操作字符串也提供我么String这个类了
首先我么先来了解一下String这个类的几种构造方法把,并且我也会体现案例的
String:构造方法。
A:String()
案例:
String str = new String();
B:String(byte[] bytes)
案例:
byte bys[] = {97,98,99,100,101};
String str2 = new String(bys); //将byte字节数组转换成String类型
System.out.println("str2 = "+str2);//打印出abcde,将数字转换成字符
C:String(byte[] bytes, int index, int length)
案例:
byte by[] = {97,98,99,100,101};
String str3 = new String(by,1,3); //指定下标位置进行转换成字符串
System.out.println("str3 = "+str3);
D:String(char[] value)
案例:
char[] ch = {'H','a','c','k','e','r'};
String str4 = new String(ch);
System.out.println("str4 = "+str4);
E:String(char[] value, int index, int count)
案例:
char[] chs = {'S','t','r','i','n','g'};
//System.out.println(chs.length);
String str5 = new String(chs,3,3); //这里不可以超过下标6否则抛出下标越界异常
System.out.println("str5 = "+str5);
F:String(String str)
案例:
String str6 = new String("hello");
System.out.println("str6 = "+str6);
G:String s = "hello";
案例:
String str7 = "world";
System.out.println("str7 = "+str7);
上面是字符串的一些构造方法,但是都不常用,作为了解即可,一般都是用第七种方式初始化
字符串。
好了,既然我么已经会初始化字符串了,那下面我么在多学习一些其他的方法把
下面是需要学习的方法:
String类的判断功能:
boolean equals(Object obj):比较字符串的值是否相同。
案例:
String str = "hello";
System.out.println("admin".equals(str));//字符串的内容不相同返回false
boolean equalsIgnoreCase(String str):比较字符串的值是否相同,不考虑大小写。
案例:
String str2 = "HELLO";
System.out.println("str2 = "+"HELLo".equalsIgnoreCase(str2));
boolean contains(String str):包含,判断str这个字符串在字符串对象中是否存在。
案例:
String str3 = "world";
System.out.println("str3 = "+str3.contains("world"));
boolean startsWith(String str):判断字符串对象是否以str开头
案例:
String str4 = "Hacker";
System.out.println("str4 = "+str4.startsWith("Hacker")); //true
boolean endsWith(String str):判断字符串对象是否以str结尾
案例:
String str5 = "Hacker";
System.out.println("str5 = "+str5.endsWith("r")); //true
boolean isEmpty():判断字符串是否为空
案例:
String str6 = "Hacker";
System.out.println(str6.isEmpty());//false
学过上面这些方法以后我么做一个小题目把
题目:模拟登录,给三次机会,并提示还有几次
public class StringTest5
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
String username;
String password;
int count = 3;
while(count!=0)
{
System.out.println("请输入账号:_");
username = sc.nextLine();
System.out.println("请输入密码:");
password = sc.nextLine();
if(username.equals("admin") && password.equals("admin888"))
{
System.out.println("登陆成功,欢迎进入管理界面");
break;
}
else
{
System.out.println("账号或者密码输入错误请重新输入,你还有"+(--count)+"次机会");
}
}
}
}
看完上面的例子后,我么再来学习一些API中的方法把
String类的获取功能:
int length():返回的是字符串对象的长度。
案例:
String str = "hello";
System.out.println("str = "+str.length());
char charAt(int index):返回指定索引处的字符值。
案例:
String str2 = "Hacker";
char ch = str2.charAt(3);
System.out.println("str2 = "+ch);//k
int indexOf(int ch)
案例:
String str3 = "HelloWorld";
int n = str3.indexOf('W');
System.out.println("n = "+n);//5
int indexOf(String str):返回字符或字符串在字符串对象中第一处出现的索引。
案例:
String str4 = "HelloWorld";
int i = str4.indexOf("World");
System.out.println("i = "+i);//5
int indexOf(int ch,int fromIndex)
案例:
String str5 = "Sop Long";
int t = str5.indexOf('L',3);
System.out.println("t = "+t);
int indexOf(String str,int fromIndex):从指定的位置开始,返回字符或字符串在字符串对象中第一处出现的索引。
案例:
String str6 = "China";
int index = str6.indexOf("ina", 1);
System.out.println("index = "+index);
String substring(int start):从指定位置开始截取一个字符串,默认到结尾。
案例:
String str7 = "I'm Love JAVA!";
String s = str7.substring(3);
System.out.println("s = "+s);
String substring(int start,int end):从开始位置到结束位置见进行截取字符串。
案例:
String str8 = "I'm Love C++";
String s1 = str8.substring(4, 12);
System.out.println("s1 = "+s1);
经过上面的API学习,接下来我么再做个练习把
题目:
请从键盘录入一个字符串(只包含大小写英文字母和数字),
请统计出这个字符串中的每种类型的字符有多少个?
代码实现:
import java.util.Scanner;
public class StringTest7
{
public static void main(String[] args)
{
//计算大写字符
int big = 0;
//计算小写字符
int small = 0;
//计算数字
int num = 0;
Scanner sc = new Scanner(System.in);
System.out.println("请输入一串字符:");
String str = sc.nextLine();
for(int x=0;x<str.length();x++)
{
char ch = str.charAt(x);
if(ch >= 'A' && ch <= 'Z')
{
big++;
}
else if(ch >='a' && ch<= 'z')
{
small++;
}
else
{
num++;
}
}
System.out.println("大写字母有:"+big+"个");
System.out.println("小写字母有:"+small+"个");
System.out.println("数字有:"+num+"个");
}
}
好了上面的学习还是不算够的,我么现在,在学一些常用的API中的方法把,其实这些方法记不住是没关系的
因为没有人记得住这么多的,所以只要会查看API就行了。
需要学习的方法:
String类的转换功能:
byte[] getBytes():把字符串对象变成一个字节数组
案例:
String str = "abcde";
byte by[] = str.getBytes();
for(int x=0;x<str.length();x++)
{
System.out.println("by = "+by[x]);
}
char[] toCharArray():把字符串对象变成一个字符数组
案例:
String str2 = "Hacker";
char ch[] = str2.toCharArray();
for(int x=0;x<str2.length();x++)
{
System.out.println("ch = "+ch[x]);
}
static String copyValueOf(char[] chs):静态方法把字符数组变成字符串
案例:
char chs[] = {'a','b','c','d','e'};
String str3 = String.copyValueOf(chs);
System.out.println("str3 =" +str3);//abcde
static String valueOf(char[] chs):静态方法把字符数组变成字符串
案例:
char c[] = {'a','r','r','l','i','s','t'};
String str4 = String.valueOf(c);
System.out.println("str4 = "+str4);
static static valueOf(int i)基本类型
案例:
int x=10;
String str5 = String.valueOf(x);
System.out.println("str5 = "+str5);//10
String toLowerCase():把字符串变成小写
案例:
String str = "HELLOWORLD";
System.out.println("str = "+str.toLowerCase());
String toUpperCase():把字符串变成大写
案例:
String str2 = "helloworld";
System.out.println("str2 = "+str2.toUpperCase())
String concat(String str):字符串的连接
案例:
String str3 = str.concat(str2);
System.out.println("str3 = "+str3)
好了,又学习一些常用的API,下面我么在做一个练习把
键盘录入一个字符串,请把首字母变成大写,其他字母变成小写输出。
举例:
hELLOWORLD
转 Helloworld
代码体现:
import java.util.Scanner;
public class StringTest10
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
System.out.println("请输入字符串:");
String str = sc.nextLine();
String str2 = str.substring(0,1);
String str3 = str.substring(1);
String str4 = str2.toUpperCase().concat(str3.toLowerCase());
System.out.println("str4 = "+str4);
}
}
最后呢,我么在学习一些其他的字符串功能吧,虽然不常用额,但是可以作为了解哦
替换功能:
String replace(char old,char new)
案例:
String str = "HelloWorld";
System.out.println("替换前str = "+str);
String s = str.replace('W', '0');
System.out.println("替换后str = "+s);
String replace(String old,String new)
案例:
String str2 = "HackerChian";
System.out.println("替换前str2 = "+str2);
String s2 = str2.replace("Chian", "work");
System.out.println("替换后s2 = "+s2);
String[] split(String regex) 切割
案例:
String str = "Hel-loWorl-d";
String s[] = str.split("-");
System.out.println(s[0]);
System.out.println(s[1]);//loworl
System.out.println(s[2]);
String trim() 去除字符串两端空格
案例:
String str2 = " Hac ker ";
System.out.println("str2没变化前str2 = "+str2);
String s2 = str2.trim();
System.out.println("变化后:s2 = "+s2);
int compareTo(String str) 按字典顺序比较两个字符串
案例:
String str3 = "HelloWorld";
int n = str3.compareTo("admin");
System.out.println("n = "+n); //H-a=? H=72 a=97 72-97=-25
int compareToIgnoreCase(String str)
案例:
String str4 = "ABCDEF";
int i = str4.compareToIgnoreCase("ABCDE");
System.out.println("i = "+i);
下面我来在来做个小练习把:
获取一个字符串中指定子串出的次数。比如说“hanbasdnbafllgnbahjnbakqqqqlnbaxi”
在这个字符串中,多有个nba?
代码体现:
import java.util.Scanner;
class CmpTest
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
System.out.println("请输入一串字符:");
String str = sc.nextLine();
int count = 0;
int index = str.indexOf("nba");
while(index != -1)
{
if (index != -1)
{
++count;
str = str.substring(index+"nba".length());
index = str.indexOf("nba");
}
}
System.out.println("总过有"+count+"相同字符串");
}
}
还有一题就是:
对字符串中字符进行自然顺序排序
"basckd" -- "abcdks"
代码体现:
import java.util.Arrays;
import java.util.Scanner;
public class StringTest14
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
System.out.println("请输入一串字符:");
String str = sc.nextLine();
//将字符串转换成每个字符
char ch[] = str.toCharArray();
//然后使用每个字符进行比较大小
Arrays.sort(ch);
//最后将比较好了的字符转换成字符串
String str2 = String.copyValueOf(ch);
//最后将转换好了的字符串输出
System.out.println(str2);
}
}