2020.12.2

2020.12.2

1.课后习题

(1)从键盘上输入任意个任意字母,统计元音字母a、e、i、o、u共出现多少次

public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc=new Scanner(System.in);
System.out.println("请输入字母:");
String input=sc.nextLine();
String inputs[]=input.split("");
int a=0;
int e=0;
int i=0;
int o=0;
int u=0;
for (int j = 0; j < inputs.length; j++) {
String str=inputs[j];
if (str.equals("a")) {
a++;
}else if (str.equals("e")) {
e++;
}else if (str.equals("i")) {
i++;
}else if (str.equals("o")) {
o++;
}else if (str.equals("u")) {
u++;
}
}
System.out.println("a:"+a);
System.out.println("e:"+e);
System.out.println("i:"+i);
System.out.println("o:"+o);
System.out.println("u:"+u);
}
}

(2)从键盘上输入一个用户名,验证用户名是否合法并输出

public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input=new Scanner(System.in);
System.out.println("请输入用户名:");
String name=input.next();
int underlinIndex=name.indexOf("_");
if (name.length()<=6 || name.length()>=20) {
System.out.println("用户名长度不合法,合法的长度是6到20之间");
return;
}
if (name.charAt(0)<65 || name.charAt(0)>90) {
System.out.println("用户名不合法,必须以大写字母开头");
return;
}
if (underlinIndex==-1) {
System.out.println("用户名不合法,必须有_");
return;
}
boolean digit=false;
char[] ch = name.toCharArray();
for (int i = 0; i < ch.length; i++) {
if (ch[i]>48 && ch[i]<57) {
digit = true;
}
}
if (!digit) {
System.out.println("用户名不合法,必须包含数字");
return;
}
System.out.println("用户名合法");
}
}

(3)统计汉字的个数和英文字母的个数分别是多少

public static void main(String[] args) {
// TODO Auto-generated method stub
Third("迭戈马拉多纳football");
}
public static void Third(String s) {
int countChinese=0;
int countEnglish=0;
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i)>=65 && s.charAt(i)<=90 ||s.charAt(i)>=97 &&s.charAt(i)<=122) {
countEnglish++;
}
if (s.charAt(i)>=Integer.parseInt("4e00",16) && s.charAt(i)<=Integer.parseInt("9fa5",16)) {
countChinese++;
}
}
System.out.println("English:"+countEnglish);
System.out.println("Chinese:"+countChinese);
}
}

(4)检测用户输入的单词是否是回文单词。所谓回文单词指单词倒过来与原单词一样,比如“level”、“pop”、“noon”都是回文单词

public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input=new Scanner(System.in);
System.out.println("请输入一个单词:");
String str=input.next();
char ch[]=str.toCharArray();
boolean flag=true;
for (int i = 0,j = ch.length-1; i<ch.length/2;i++, j--) {
if (ch[i]!=ch[j]) {
flag = false;
break;
}
}
if (flag) {
System.out.println("yes");
}else {
System.out.println("no");
}
}
}

(5)过滤不文明词汇

public static void main(String[] args) {
String source = "天气太hot,食物都放坏了,我昨天就吃了一个坏蛋黄派,真是Stupid啊,怎么能这么STUPID呢?";
String word = "笨蛋,坏蛋,stupid,TMD,TNND".toUpperCase();
String words[] = word.toUpperCase().split(",");
boolean isGood;
do {
isGood = true;
for (int i = 0; i < words.length; i++) {
int pos = source.toUpperCase().indexOf(words[i]);
if (pos != -1) {
int length = words[i].length();
source = source.substring(0, pos) + "****" + source.substring(pos + length);
isGood = false;
}
}
} while (!isGood);
System.out.println(source);
}
}

(6)编写一个函数实现字符串倒置,用键盘输入一个字符串,调用函数输出结果

public static void main(String[] args) {
// TODO Auto-generated method stub
reverse("123456789");
}
public static void reverse(String str) {
for (int i = str.length()-1;i>=0; i--) {
System.out.print(str.charAt(i));
}
}
}

(7)编写一个求字符串长度的函数。完成字符串中length()的功能

public static void main(String[] args) {
// TODO Auto-generated method stub
int length= getStringLength("1234567891011111");
System.out.println(length);
}
public static int getStringLength(String str) {
return str.toCharArray().length;
}
}

2.字符串格式化

格式符 说明 示例
%s 字符串类型 “武松”
%c 字符类型 ‘m’
%b 布尔类型 false
%d 整数类型(十进制) 100
%x 整数类型(十六进制) FF
%o 整数类型(八进制) 77
%f 浮点类型 99.99
  • 在java中要连接不同类型的数据,将结果变成一个字符串,可以使用加号,也可以使用字符串格式化。
  • 字符串格式化其实就是将不同类型的数据连接成一个字符串。
  • String类的format()方法用于创建格式化的字符串以及连接多个字符串对象

3.字符串与基本类型的转换

  • 为什么需要字符串与基本类型的转换?

  • String转基本类型

编写代码时,整型使用int

源代码编译成字节码时,int被自动编译成Integer对象

我们称Integer类为int类的包装类,java其他7个基本类型也有包装类,如下表所示:

基本类型 包装类 方法名称 作用
boolean Boolean parseBoolean(String) 将字符串转换为boolean型
byte Byte parseByte(String) 将字符串转换为byte型
short Short parseShort(String) 将符串转换为short型
int Integer parseInt(String) 将字符串转换为int型
long Long parseLong(String) 将字符串转换为long型
float Float parseFloat(String) 将字符串转换为float型
double Double parseDouble(String) 将字符串转换为double型

标签

评论

© 2021 成都云创动力科技有限公司 蜀ICP备20006351号-1