在Java中查找字符串的所有大写字母

因此,我试图在用户输入的字符串中查找所有大写字母,但始终出现此运行时错误:

Exception in thread "main" java.lang.StringIndexOutOfBoundsException: 

String index out of range: 4

at java.lang.String.charAt(String.java:686)

at P43.main(P43.java:13)

我觉得很愚蠢,但我无法弄清楚,Oracle甚至在有关java.lang.StringIndexOutOfBoundsException的页面上谈论了charAt。

这是我的代码,用于查找大写字母并打印它们:

import java.io.*;

import java.util.*;

public class P43{

public static void main(String[] args){

Scanner in = new Scanner(System.in);

//Uppercase

String isUp = "";

System.out.print("Please give a string: ");

String x = in.next();

int z = x.length();

for(int y = 0; y <= z; y++){

if(Character.isUpperCase(x.charAt(y))){

char w = x.charAt(y);

isUp = isUp + w + " ";

}

}

System.out.println("The uppercase characters are " + isUp);

//Uppercase

}

}

我非常感谢您的任何投入和/或帮助。

回答:

for(int y = 0; y <= z; y++){

应该

for(int y = 0; y < z; y++){

请记住,数组索引从零开始。

字符串长度返回

字符串中16位Unicode字符的数量

由于循环从零开始,因此循环应在长度1处终止。

以上是 在Java中查找字符串的所有大写字母 的全部内容, 来源链接: utcz.com/qa/422881.html

回到顶部