A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 唱歌的蚂蚁1 初级黑马   /  2018-1-29 15:18  /  693 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

Scanner  类中的nextline()  方法和next(),nextInt()等读取方法不能同时使用

String:字符串类
*                由多个字符组成的一串数据
*                字符串其本质是一个字符数组
*
* 构造方法:
*                String(Stringoriginal):把字符串数据封装成字符串对象
*                String(char[]value):把字符数组的数据封装成字符串对象
*                String(char[]value, int index, int count):把字符数组中的一部分数据封装成字符串对象
*
* 注意:字符串是一种比较特殊的引用数据类型,直接输出字符串对象输出的是该对象中的数据。


通过构造方法创建的字符串对象和直接赋值方式创建的字符串对象有什么区别呢?
*                通过构造方法创建字符串对象是在堆内存。
*                直接赋值方式创建对象是在方法区的常量池。
*               
* ==:
*                基本数据类型:比较的是基本数据类型的值是否相同
*                引用数据类型:比较的是引用数据类型的地址值是否相同
*/




Object:是类层次结构中的根类,所有的类都直接或者间接的继承自该类。
* 如果一个方法的形式参数是Object,那么这里我们就可以传递它的任意的子类对象。
*
* String类的判断功能:
   boolean contains(String str),  判断字符串是否包含指定字符串
* booleanequals(Object obj):比较字符串的内容是否相同
* booleanequalsIgnoreCase(String str):比较字符串的内容是否相同,忽略大小写
* booleanstartsWith(String str):判断字符串对象是否以指定的str开头
* booleanendsWith(String str):判断字符串对象是否以指定的str结尾
模拟登录,给三次机会,并提示还有几次。
*
* 分析:
*                A:定义两个字符串对象,用于存储已经存在的用户名和密码
*                B:键盘录入用户名和密码
*                C:拿键盘录入的用户名和密码和已经存在的用户名和密码进行比较
*                        如果内容相同,提示登录成功
*                        如果内容不同,提示登录失败,并提示还有几次机会
*/
publicclass StringTest {
public static void main(String[] args) {
//定义两个字符串对象,用于存储已经存在的用户名和密码
String username = "admin";
String password = "admin";
//给三次机会,用for循环实现
for(int x=0; x<3; x++) {
//键盘录入用户名和密码
Scanner sc = new Scanner(System.in);
System.out.println("请输入用户名:");
String name = sc.nextLine();
System.out.println("请输入密码:");
String pwd = sc.nextLine();
//拿键盘录入的用户名和密码和已经存在的用户名和密码进行比较
if(username.equals(name) && password.equals(pwd)) {
System.out.println("登录成功");
break;
}else {
if((2-x) ==0) {
System.out.println("用户名和密码被锁定,请与管理员联系");
}else {
System.out.println("登录失败,你还有"+(2-x)+"次机会");//2,1,0
}
}
}
}
}
String类的获取功能:
* int length():获取字符串的长度,其实也就是字符个数
* charcharAt(int index):获取指定索引处的字符
* intindexOf(String str):获取str在字符串对象中第一次出现的索引
* int  indexOf(String str,fromIndex),从指定索引开始,获取str在字符对象
第一次出现的索引
* Stringsubstring(int start):从start开始截取字符串
* Stringsubstring(int start,int end):从start开始,到end结束截取字符串。包括start,不包括end
遍历字符串(获取字符串中的每一个字符)
*/
publicclass StringTest {
public static void main(String[] args) {
//创建一个字符串对象
String s = "abcde";

//原始做法
System.out.println(s.charAt(0));
System.out.println(s.charAt(1));
System.out.println(s.charAt(2));
System.out.println(s.charAt(3));
System.out.println(s.charAt(4));
System.out.println("---------");

//用for循环改进
for(int x=0; x<5; x++) {
System.out.println(s.charAt(x));
}
System.out.println("---------");

//用length()方法获取字符串的长度
for(int x=0; x<s.length(); x++) {
System.out.println(s.charAt(x));
}
}
}
统计一个字符串中大写字母字符,小写字母字符,数字字符出现的次数。(不考虑其他字符)
*
* 分析:
*                A:键盘录入一个字符串数据
*                B:定义三个统计变量,初始化值都是0
*                C:遍历字符串,得到每一个字符
*                D:拿字符进行判断
*                        假如ch是一个字符。
*                        大写:ch>='A'&& ch<='Z'
*                        小写:ch>='a'&& ch<='z'
*                        数字:ch>='0'&& ch<='9'
*                E:输出结果
*/
publicclass StringTest2 {
public static void main(String[] args) {
//键盘录入一个字符串数据
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个字符串数据:");
String s = sc.nextLine();

//定义三个统计变量,初始化值都是0
int bigCount = 0;
int smallCount = 0;
int numberCount = 0;

//遍历字符串,得到每一个字符
for(int x=0; x<s.length(); x++) {
char ch = s.charAt(x);
//拿字符进行判断
if(ch>='A' && ch<='Z') {
bigCount++;
}else if(ch>='a' && ch<='z') {
smallCount++;
}else if(ch>='0' && ch<='9') {
numberCount++;
}else {
System.out.println("该字符"+ch+"非法");
}
}

//输出结果
System.out.println("大写字符:"+bigCount+"个");
System.out.println("小写字符:"+smallCount+"个");
System.out.println("数字字符:"+numberCount+"个");
}
}
String类的转换功能:
* char[]toCharArray():把字符串转换为字符数组
* StringtoLowerCase():把字符串转换为小写字符串
* StringtoUpperCase():把字符串转换为大写字符串
*
* 字符串的遍历:
*                A:length()加上charAt()
*                B:把字符串转换为字符数组,然后遍历数组
*/
publicclass StringDemo {
public static void main(String[] args) {
//创建字符串对象
String s = "abcde";

//char[] toCharArray():把字符串转换为字符数组
char[] chs = s.toCharArray();
for(int x=0; x<chs.length; x++) {
System.out.println(chs[x]);
}
System.out.println("-----------");

//String toLowerCase():把字符串转换为小写字符串
System.out.println("HelloWorld".toLowerCase());
//String toUpperCase():把字符串转换为大写字符串
System.out.println("HelloWorld".toUpperCase());
}
}
键盘录入一个字符串,把该字符串的首字母转成大写,其余为小写。(只考虑英文大小写字母字符)
*
* 分析:
*                A:键盘录入一个字符串
*                B:截取首字母
*                C:截取除了首字母以外的字符串
*                D:B转大写+C转小写
*                E:输出即可
*/
publicclass StringTest {
public static void main(String[] args) {
//键盘录入一个字符串
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个字符串:");
String s = sc.nextLine();

//截取首字母
String s1 = s.substring(0, 1);

//截取除了首字母以外的字符串
String s2 = s.substring(1);

//B转大写+C转小写
String s3 = s1.toUpperCase()+s2.toLowerCase();

//输出即可
System.out.println("s3:"+s3);
}

}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马