一、自定义函数之字符提取
1.问题描述
写一函数,将一个字符串中的元音字母复制到另一个字符串,然后输出。
2.输入格式
一行字符串
3.输出格式
顺序输出其中的元音字母(aeiou)
4.样例输入
abcde
5.样例输出
ae
二、思路
1.从键盘中输入字符数组
首先从键盘输入一行字符串,然后将字符串转化成字符数组。
Scanner scanner = new Scanner(System.in);
String str = scanner.next(); //输入一行字符串
char[] arr = str.toCharArray(); //将字符串变成字符数组
2.复制到新的字符串
首先定义一个新的字符数组,将字符串中的元音字母存储到字符数组中。
char[] b = new char[100];
int j = 0;
for(int i=0;i<arr.length;i++){
if((arr[i]=='a')||(arr[i]=='e')||(arr[i]=='i')||(arr[i]=='o')||(arr[i]=='u')){
b[j] = arr[i]; //将元音复制到另一个字符串中
j++;
}
}
3.将元音字母排序
对存储了元音字母的新字符数组按ASCII从小到大排序。
//按顺序排列
for(int i=0;i<j;i++){
for(int k=i;k<j;k++){
if(b[i]>b[k]){
c=b[i];
b[i]=b[k];
b[k]=c;
}
else continue;
}
}
三、java代码实现
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String str = scanner.next(); //输入一行字符串
copy(str);
}
public static void copy(String str){
char[] arr = str.toCharArray(); //将字符串变成字符数组
char[] b = new char[100];
char c;
int j = 0;
for(int i=0;i<arr.length;i++){
if((arr[i]=='a')||(arr[i]=='e')||(arr[i]=='i')||(arr[i]=='o')||(arr[i]=='u')){
b[j] = arr[i]; //将元音复制到另一个字符串中
j++;
}
}
//按顺序排列
for(int i=0;i<j;i++){
for(int k=i;k<j;k++){
if(b[i]>b[k]){
c=b[i];
b[i]=b[k];
b[k]=c;
}
else continue;
}
}
for(int i=0;i<j;i++)
System.out.print(b[i]);
}
}