我正在处理一个代码,在该代码中输入一个输入字符串并输入一个输入字符。代码将计算该字符串中该字符的出现百分比。代码如下:
import java.util.Scanner;
class apple{
public static void main(String args[]){
int i,j,l=0;
float m;
char k;
Scanner in = new Scanner(System.in);
System.out.println("Enter the String");
String str = in.nextLine();
j=str.length();
System.out.println("Enter the character to be found");
char s = in.next(".").charAt(0);
for(i=0;i<=j;i++){
k = str.charAt(i);
if(k == s){
l++;
}
}
m= l/j;
m=m*100;
System.out.println("percent character in String is "+m);
}
}
答案 0 :(得分:2)
将循环更改为
for(i = 0 ;i < j ; i++)
否则,如果您的String的长度为4
(因此最后一个索引为3
),它将尝试访问索引4
并抛出异常。
答案 1 :(得分:0)
你这样做:
for (i = 0; i <= j; i++) {
这是一个java.lang.StringIndexOutOfBoundsException:
因为您没有考虑元素从0变为lengt-1
你应该这样做:
for (i = 0; i < j; i++) {
答案 2 :(得分:0)
将您的for循环编辑为for (i=0;i<j;i++)
。我们无法访问数组大小位置的元素,因为Java数组使用从0开始的索引
答案 3 :(得分:0)
String的第一个字符是'0',最后一个是yourString.length() - 1,所以将你的循环更改为
for( i = 0 ; i < j ; i++ ){
k = str.charAt(i);
if(k == s){
l++;
}
}
它会起作用;)