ورود

View Full Version : سوال مبتدی درباره رشته ها؟



AVR programmer
سه شنبه 28 اردیبهشت 1395, 20:06 عصر
ببخشید دوستان من کاملا مبتدی و در حال یادگیری جاوا هستم .
سوالم اینه که میخوام برنامه ای بنویسم که یک رشته رو از ورودی بگیره و معادل عددی (اسکی) همه کاراکتر ها شو جمع بزنه و در خروجی چاپ کنه . این برنامه رو نوشتم :

import java.util.*;

public class string_to_asci {
static Scanner in = new Scanner(System.in);


public static void main(String[] args) {
String a="";
char c;
int b=0,i=0,j=0,k=0;

System.out.println("Enter string : ");
a = in.nextLine();
b = a.length();
for (i=0;i<=b;i++){
c=a.charAt(i);
j=(int)c;
k=k+j;
}
System.out.print("number is : "+ k);

}


}

ولی موقع کامپایل و بعد از گرفتن رشته تو اکلیپس این Error رو میده:


Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 6 at java.lang.String.charAt(Unknown Source)
at string_to_asci.main(string_to_asci.java:15)
اینطور که معلومه از خط c=a.charAt(i) ایراد میگیره .
اساتید لطفا کمکم کنید .

vahid-p
چهارشنبه 29 اردیبهشت 1395, 07:17 صبح
رشته ای که نوشتید (a) شش حرفیه پس مقدار b=6 و در شرط:
for (i=0;i<=b;i++){
7 بار این حلقه تکرار میشه. از a[0] تا a[6] در صورتی که از a[0] تا a[5] وجود داره. همیشه اینجوری بنویسید:
for (i=0;i<b;i++){

موفق باشید.