首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Eclipse开发 >

复制字符串,该如何解决

2013-01-07 
复制字符串写一函数,将两个字符串中的元音字母复制到另一个字符串,然后输出。输入一行字符串输出顺序输出其

复制字符串
写一函数,将两个字符串中的元音字母复制到另一个字符串,然后输出。

输入
一行字符串

输出
顺序输出其中的元音字母(aeiuo)

样例输入
abcde
样例输出
ae

public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner rd=new Scanner(System.in);
String str=rd.nextLine();
copy(str);
}
public static void copy(String str)
{
char a[] = new char[30];
char[] c=str.toCharArray();
for(int i=0,j=0;i<c.length;i++)
{
if((c[i]=='a')||(c[i]=='e')||(c[i]=='i')||(c[i]=='u')||(c[i]=='o'))
{
a[j]=c[i];
j++;
}
System.out.print(a[i]);
}
}

}

只输出了a 为什么?
[解决办法]
引用:
引用:System.out.print(a[i]);应该是a[j]
j是你条件为真才存入a数组的j下标中,而你的i是指的c数组的下标
改了也输出不了?为什么

晕,这样输出绝对没问题了System.out.println(a[j-1]);
你在j赋值之后,然以j=j+1了一次,下标都到下一个位置了,而下一个位置没有任何东西的,所以数不出来
或者可以这样

public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner rd=new Scanner(System.in);
        String str=rd.nextLine();
        copy(str);
    }
    public static void copy(String str)
    {
        char a[] = new char[30];
        char[] c=str.toCharArray();
        for(int i=0,j=0;i<c.length;i++)
        {
            if((c[i]=='a')
[解决办法]
(c[i]=='e')
[解决办法]
(c[i]=='i')
[解决办法]
(c[i]=='u')
[解决办法]
(c[i]=='o'))
            {
                a[j]=c[i];
                System.out.print(a[j);
                j++;
            }
        }
    }
 
}

或者

public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner rd=new Scanner(System.in);
        String str=rd.nextLine();
        copy(str);
    }
    public static void copy(String str)
    {
        char a[] = new char[30];


        char[] c=str.toCharArray();
        for(int i=0,j=0;i<c.length;i++)
        {
            if((c[i]=='a')
[解决办法]
(c[i]=='e')
[解决办法]
(c[i]=='i')
[解决办法]
(c[i]=='u')
[解决办法]
(c[i]=='o'))
            {
                a[j]=c[i];
                j++;
            }
        }
        for(int k = 0; k < a.length; k++){
             if(a[k] != null 
[解决办法]
 !"".equals(a[k])){
                  System.out.println(a[k]);
             }
        }
    }
 
}

热点排行