בעיה בספירת אותיות
אני מנסה להכין קוד שלוקח משפט וכותב כמה אותיות מכל סוג קיימים במשפט.
לדוגמה במשפט blaBLAbla יש
2 l
b 2
a 2
L 1
B 1
A 1
הבעיה היא, שמשום מה הקוד לא רק אומר שיש חורג של ArrayIndexOutOfBoundsException מאיזה שהיא סיבה אלה גם שהקוד רק בודק את האות הראשונה במשפט.
הנה הקוד
ציטוט:
package lettercounter;
public class Main {
static int[] Lettersvalue = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0,0,0,0};
static char[] Letters = {'a','b','c','d','e','f','g','h','i','j','k','l',' m','n','o','p','q','r','s','t','u','v','w','x','y' ,'z','A','B','C','D','E','F','G','H','I','J','K',' L','M','N','O','P','Q','R','S','T','U','V','W','X' ,'Y','Z','1','2','3','4','5','6','7','8','9','0',' !'};
static char current;
public static void main(String[] args) {
check("some string");
}
public static void check(String s){
try {
for(int i = 0; i < s.length(); i++){
current = s.charAt(i);
for(int in = 0; in < 63; i++){
if(current == Letters[i]){
Lettersvalue[i] = Lettersvalue[i] + 1;
}
}
}
} catch (ArrayIndexOutOfBoundsException e){
System.out.println("Error:" + e.getMessage());
}
try{
for(int count = 0; count < 63; count++){
System.out.println(Letters[count] + ": " + Lettersvalue[count]);
}
} catch (ArrayIndexOutOfBoundsException ex){
System.out.println("Error:" + ex.getMessage());
}
}
}
|
אני מצטער על חוסר הסדר. הCODE לא יכול להראות את כל האורך מסיבה כלשהיא.
והנה התוצאה
קוד:
Error:63
a: 0
b: 0
c: 0
d: 0
e: 0
f: 0
g: 0
h: 0
i: 0
j: 0
k: 0
l: 0
m: 0
n: 0
o: 0
p: 0
q: 0
r: 0
s: 1
t: 0
u: 0
v: 0
w: 0
x: 0
y: 0
z: 0
A: 0
B: 0
C: 0
D: 0
E: 0
F: 0
G: 0
H: 0
I: 0
J: 0
K: 0
L: 0
M: 0
N: 0
O: 0
P: 0
Q: 0
R: 0
S: 0
T: 0
U: 0
V: 0
W: 0
X: 0
Y: 0
Z: 0
1: 0
2: 0
3: 0
4: 0
5: 0
6: 0
7: 0
8: 0
9: 0
0: 0
!: 0
יש לי גם בעיה אחרת.
אני מנסה להכין מערכת של Accounts וכרגע אני סתם עושה בדיקה קטנה שמראה לי את השמות ואת הסיסמאות של שני accounts.
משום מה הקוד טוען שאין בarray של הaccounts שום דבר למרות שהכנסתי לו את שניהם.
הנה הקוד
קוד:
package account;
public class Main {
static Info[] w = new Info[6];
public static void main(String[] args) {
Info wolf = new Info();
wolf.setting("wolf", "undeadd");
w[1] = wolf;
Info c = new Info();
c.setting("blabla", "blabla");
w[2] = c;
list();
}
public static void list(){
try{
for(int i = 0; i < w.length; i++){
System.out.println(w[i].name);
System.out.println(w[i].password);
}
} catch (NullPointerException e){
System.out.println("There are no accounts.");
}
}
}
Info זה סתם class שמכיל בתוכו שני סטרינגים בשביל השם והססמה.
תודה מראש על כל עזרה.
נערך לאחרונה ע"י WolfsCaptain בתאריך 18-04-2008 בשעה 17:43.
|