Java StringIndexOutOfBound异常
我是编程新手,我曾尝试编写一个程序,从用户那里获取字符串,并将字符串中的小写、大写、空格等数字告诉用户。但我得到一个错误,上面写着,“StringIndexOutofBond。请告诉我我在这里犯了什么错误?。谢谢Java StringIndexOutOfBound异常,java,Java,我是编程新手,我曾尝试编写一个程序,从用户那里获取字符串,并将字符串中的小写、大写、空格等数字告诉用户。但我得到一个错误,上面写着,“StringIndexOutofBond。请告诉我我在这里犯了什么错误?。谢谢 public class CharacterCount { public static void main(String args[])throws Exception{ BufferedReader br = new BufferedReader(new In
public class CharacterCount {
public static void main(String args[])throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Please enter you string here");
String s = br.readLine();
System.out.println(s);
int upperCase = 0;
int lowerCase = 0;
int specialCase = 0;
int whiteSpace = 0;
int number = 0;
for(int i=1;i<=s.length();i++)
{
char ch = s.charAt(i);
if(Character.isAlphabetic(ch))
{
if(Character.isUpperCase(ch))
{
upperCase++;
}
else
{
lowerCase++;
}
}
if(Character.isWhitespace(ch))
{
whiteSpace++;
}
if(Character.isDigit(ch))
{
number++;
}
else
{
specialCase++;
}
}
System.out.println("-----------------------------------------------------------------");
System.out.println("The following are the results:");
System.out.println("-----------------------------------------------------------------");
System.out.println(lowerCase+" :Lower Case Characters");
System.out.println("-----------------------------------------------------------------");
System.out.println(upperCase+" :Upper Case Characters");
System.out.println("-----------------------------------------------------------------");
System.out.println(whiteSpace+" :White Space");
System.out.println("-----------------------------------------------------------------");
System.out.println(specialCase+" :Special Characters");
System.out.println("-----------------------------------------------------------------");
System.out.println(number+" :Digits");
System.out.println("-----------------------------------------------------------------");
System.out.println("----------------************THE END************------------------");
System.out.println("-----------------------------------------------------------------");
}
}
公共类字符计数{
公共静态void main(字符串args[])引发异常{
BufferedReader br=新的BufferedReader(新的InputStreamReader(System.in));
System.out.println(“请在此处输入字符串”);
字符串s=br.readLine();
系统输出打印项次;
int大写=0;
int小写=0;
int specialCase=0;
整数空格=0;
整数=0;
对于(int i=1;i您迭代了错误的索引。Java索引从0开始,因此一个length()
字符字符串的索引从0
到length()-1
你的循环应该是
for(int i=0;i<s.length();i++)
for(int i=0;i < s.length();i++)
for(int i=0;ifor(int i=1;i您的for(int i=1;iJava索引从0开始,因此字符串大小永远不会超过长度-1。因此,在循环时使用
for(int i=0;i<s.length();i++)
用于(int i=0;i你在哪里得到异常?当你问一个包含异常的问题时,总是显示完整的堆栈跟踪。不过感谢完整的程序。我很抱歉。我会从下次开始。他也应该从0开始,除非他/她故意忽略第一个。对不起,我完全错过了,我想我应该继续喝杯咖啡!
for(int i=0;i<s.length();i++)
for(int i=1;i<s.length()-1;i++)