开发者社区> 问答> 正文

从ArrayOutOfBound异常中获取数组

我正在编写代码以获取字符串中所有单词的首字母。

static void func(String str)
{
    String k ="";
   String str1=" "+str;
    char[] ch= str1.toCharArray();
    for(int i=0;i<ch.length-2;i++)
        {
            if(i != ch.length-1)
            while(i<ch.length && ch[i]!=' ')
                i++;

            k=k+ch[i+1];
        }
    System.out.print(k);
    System.out.print(ch.length);
}

public static void main(String[] args)
{
    String str = "Hello Banner jee";

    func(str);
}

问题来源:Stack Overflow

展开
收起
montos 2020-03-24 18:38:22 293 0
1 条回答
写回答
取消 提交回答
  • 您的错误在这里:

      k=k+ch[i+1];
    

    您正在越界。

    因为这:

      while(i<ch.length && ch[i]!=' ')
                i++; 
    

    这样的事情会起作用-

    static void func(String str)
    {
    String [] words = str.split(" ");
    for(int i = 0; i < words.length ;i++){
        System.out.println(words[i].charAt(0));
    }
    }
    
    public static void main(String[] args)
    {
    String str = "Hello Banner jee";
    func(str);
    }
    

    输出-

    H
    B
    j
    

    回答来源:Stack Overflow

    2020-03-24 18:39:24
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载