一、自定义函数之字符类型统计
1.问题描述
编写一函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其它字符的个数,在主函数中输入字符串以及输出上述结果。 只要结果,别输出什么提示信息。
2.输入格式
一行字符串
3.输出格式
统计数据,4个数字,空格分开。
4.样例输入
!@#$%^QWERT 1234567
5.样例输出
5 7 4 6
二、思路
1.输入要求
输入必须允许带空格的输入,需要用到nextLine()方法。
Scanner scanner = new Scanner(System.in);
String str = scanner.nextLine(); //输入包含空格的字符串
2.函数的类型和返回值
1.函数的类型
将统计的各类型的个数存放在数组里,所以调用的函数的类型为整形数组类型
public static int[] totalStr(String str){}
2.函数的返回值
函数返回的是存放各类型个数的数组。
return new int []{letter,number,space,ele};
3.java代码实现
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String str = scanner.nextLine(); //输入包含空格的字符串
int [] arr = new int[10];
arr = totalStr(str);
for(int i=0;i<arr.length;i++){
System.out.print(arr[i]+" ");
}
}
public static int[] totalStr(String str){
char arr[] = str.toCharArray();
int letter = 0;
int number = 0;
int space = 0;
int ele = 0;
for(int i=0;i<arr.length;i++){
if((arr[i]>='a'&&arr[i]<='z')||(arr[i]>='A'&&arr[i]<='Z'))
letter++;
else if(arr[i]>='0'&&arr[i]<='9')
number++;
else if(arr[i] == ' ')
space++;
else
ele++;
}
return new int []{letter,number,space,ele};
}
}