1.API概念
API(Application Programming Interface) : 应用程序编程接口,使用说明书
2.Scanner类
用Scanner类的方法可以完成接收键盘录入的数据
nextInt()
nextLine() 用的最多
一、Scanner类接受键盘录入的字符串
Scanner sc = new Scanner(System.in);
//接收数据
System.out.println("请输入一个字符串数据:");
String s = sc.nextLine();
//输出结果
System.out.println("s:"+s);
}
}
3.String类
通过构造方法创建的字符串对象和直接赋值方式创建的字符串对象有什么区别呢?
通过构造方法创建字符串对象是在堆内存。
直接赋值方式创建对象是在方法区的常量池。
基本数据类型:比较的是基本数据类型的值是否相同
引用数据类型:比较的是引用数据类型的地址值是否相同
// An highlighted block
1、equals : 比较两个字符串是否相等 返回值是boolean
String a = "abc";
String b = "abc";
if(a.equals(b)){
System.out.println("a=b");
}
2、equalsInogeCase:忽略字符串的大小写,两个字符串是否相等 返回值是boolean;
String a = "Abc";
String b = "abc";
if(a.equals(b)){
System.out.println("a=b");//false
}
3、startsWith:测试此字符串是否以指定的前缀开始;boolean
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String a = sc.nextLine();
boolean flag = a.startsWith("旗木");
if (flag) {
System.out.println("姓旗木");
}
boolean flag2 = a.endsWith("卡卡西");
if (flag2) {
System.out.println("叫卡卡西");
}
for (int i = 0; i < a.length(); i++) {
System.out.print(a.charAt(i));
}
}
}
4 endsWith:测试此字符串是否以指定的后缀结束。boolean
boolean flag2 = a.endsWith("卡卡西");
if (flag2) {
System.out.println("叫卡卡西");
}
5 charAt :返回指定索引处的 char 值。返回值char
string a = “asjdhajkh”;
char b=a.charAt(0);//'a'
6 length: 返回此字符串的长度 返回值int
string a = “asjdhajkh”;//9
a.length();
7 indexOf :返回指定字符在此字符串中第一次出现处的索引; int
string a = “asjdhajkh”;
a.indexOf(a);// 0
8 lastIndexOf:回指定字符在此字符串中最后一次出现处的索引。int
string a = “abca”;
a.indexOf(a);//3
9 Integer.parseInt():将字符串参数作为有符号的十进制整数进行解析。
String a = "845674857";
int b = Integer.parseInt(a);
System.out.println(b);
Boolean.parseBoolean() :将字符串参数作为有符号的boolean进行解析。
String a = "false";
boolean b =Boolean.parseBoolean(a);
System.out.println(b);
Float .....
10 split :根据给定正则表达式的匹配拆分此字符串。返回值是字符串数组
String a = {123,3435,565,7,78}
String []arr=a.split(",")
arr[]= {{123},{3435},{565},{7},{78}}
11 substring(int a) : 返回一个新的字符串,它是此字符串的一个子字符串。该子字符串从指定索引处的字符开始,直到此字符串末尾。返回值是string
String a = {12233467};
String b= a.sunbstring(1)
b="2233467";
12 contains : 当且仅当此字符串包含指定的 char 值序列时,返回 true
string a = {2761892367}
String b = {2}
b.contains(a)// true
13 toCharArray: 将此字符串转换为一个新的字符数组。返回 char[]
String a ={12345}
a.toCharArray();
char a = {{1}{2}{3}{4}{5}}
14 trim :返回字符串的副本,忽略前导空白和尾部空白。 返回 String
String a = " 236754 745 63 627 " ;
习题
// An highlighted block
------------------------------------------------------------------
第一题:分析以下需求,并用代码实现
1.定义如下方法public static String getPropertyGetMethodName(String property)
功能描述:
(1)该方法的参数为String类型,表示用户给定的成员变量的名字,返回值类型为String类型,返回值为成员变量对应的get方法的名字
(2)如:用户调用此方法时给定的参数为"name",该方法的返回值为"getName"
2.定义如下方法public static String getPropertySetMethodName(String property)
功能描述:
(1)该方法的参数为String类型,表示用户给定的成员变量的名字,返回值类型为String类型,返回值为成员变量对应的set方法的名字
(2)如:用户调用此方法时给定的参数为"name",该方法的返回值为"setName"
public class Student {
private String name;
public void setName(String name) {
this.name=name;
}
public String getName() {
return name;
}
public Student(String name) {
this.name = name;
}
public static String getPropertyGetMethodName(String property) {
String a ="get";
String b=property.substring(0,1);
String b1=b.toUpperCase();
String c=property.substring(1);
return a+b1+c;
}
public static String getPropertySetMethodName(String property) {
String a ="set";
String b=property.substring(0,1);
String b1=b.toUpperCase();
String c=property.substring(1);
return a+b1+c;
}
}
public class Test1 {
public static void main(String[] args) {
Student s = new Student("name");
String a=s.getName();
String b1= s.getPropertyGetMethodName(a);
System.out.println(b1);
String b2= s.getPropertySetMethodName(a);
System.out.println(b2);
}
}
第二题:分析以下需求,并用代码实现
1.键盘录入一个大字符串,再录入一个小字符串
2.统计小字符串在大字符串中出现的次数
3.代码运行打印格式:
请输入大字符串:woaizhongguo,zhongguobutongyuriben,wulunzhongguohaishiriben,doushiguojia
请输入小字符串:zhongguo
控制台输出:小字符串zhongguo,在大字符串woaizhongguo,zhongguobutongyuriben,wulunzhongguohaishiriben,doushiguojia中共出现3次
puublic class Test2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入字符串:");
String da = sc.nextLine();
String xiao = sc.nextLine();
String afterStr = da.replace(xiao, "");
int a = ((da.length() - afterStr.length()) / xiao.length());
System.out.println(a);
}
}
第三题: 分析以下需求,并用代码实现
1.键盘录入一个源字符串由字符串变量scrStr接收
2.键盘录入一个要删除的字符串由字符串变量delStr接收
3.要求
删除该字scrStr符串中的所有delStr字符串(最终的字符串中不能包含delStr),要求打印删除后的结果以及删除了几个delStr字符串
4.代码运行打印格式:
请输入源字符串:java woaijava,i like jajavava i enjoy java
请输入要删除的字符串:java
控制台输出结果:源字符串中总共包含:5 个 java 删除java后的字符串为: woai,i like i enjoy
public class Test3 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入字符串");
String scrStr=sc.nextLine();
String delStr=sc.nextLine();
String a = scrStr.replace(delStr,"");
int count = ((scrStr.length()-a.length())/delStr.length());
System.out.println(count+"个"+delStr+"删除"+delStr+"后的字符串为:"+a);
}
}
第四题: 分析以下需求,并用代码实现
1.键盘录入一个字符串
2.将该字符串变成字符数组(不能使用toCharArray()方法)
3.将字符数组中的所有大写字母变成小写字母(不能使用toLowerCase()方法)
4.如果第一位和最后一位的内容不相同,则交换
5.将字符数组中索引为偶数的元素变成'~'
6.打印数组元素的内容
public class Test4 {
public static void main(String[] args) {
@SuppressWarnings("resource")
Scanner sc = new Scanner(System.in);
System.out.println("请输入:");
String a = sc.nextLine();
char[] arr = new char[a.length()];
char arr1[] = new char[a.length()];
for (int i = 0; i < a.length(); i++) {
arr[i] = a.charAt(i);
}
// 大写变小写要减32
for (int j = 0; j < a.length(); j++) {
arr1[j] = (char) (arr[j] + 32);
}
if (arr1[0] != arr1[(a.length() - 1)]) {
char c = arr1[0];
arr1[0] = arr1[(a.length() - 1)];
arr1[(a.length() - 1)] = c;
for (int n = 0; n < a.length(); n++) {
if (n % 2 == 0) {
arr1[n] = (char) ('~');
}
}
for (int m = 0; m < a.length(); m++) {
System.out.print(arr1[m] + "");
}
}
}
}
第五题: 分析以下需求,并用代码实现
生成4个随机验证码 要求包括 A~z (大小写)和数字
/*
* 生成一个4位数的验证码 要求包括 大小写的A~z 和数字
*/
public class Test8 {
public static void main(String[] args) {
String s="qwertyuiopasdfghjklzxcvbnm1234567890QWERTYUIOPASDFGHJKLZXCVBNM";
Random r= new Random();
String a ="";
for(int i= 0;i<4;i++) {
int index = r.nextInt(s.length());
char c=s.charAt(index);
a +=c;
}
System.out.println(a);
}
}
第六题:请用户输入一个字符串包含数字字母,要求获取到用户输入内容中的所有数字。
public class Test6 {
public static void main(String[] args) {
System.out.println("请输入一个字符串:");
String str = new Scanner(System.in).nextLine();
for (int a = 0; a < str.length(); a++) {
char d = str.charAt(a);
if (d >= 48 && d <= 57) {
System.out.println(d);
}
}
}
}
第七题:自己定义一个方法可以去除字符串中的所有空格
public class Test7 {
public static void main(String[] args) {
System.out.println("请输入一个字符串");
String a = new Scanner(System.in).nextLine();
String b=a.trim();
String c=b.replace(" ", "");
System.out.println(c);
}
}