if have following 2d object of char type:
aaaa...|| bbb..|ccc ddddd..|d the method countchars() returns number of letters different, i.e. in example above result returned 4 because there a,b,c, , d characters. not count every single character ('.' , '|' not included while counting) counts number of different characters in array. example:
zzz.zz|| ....tt|. wwwwwwww the above result returned method 3 (z, t , w) in code, i'm not getting desired result.
public int countchars() { char originalchar = 0; char anotherchar = 0; int count = 0; for(int r = 0; r < height; r++) { for(int c = 0; c < width; c++) { if(space[r][c] != '.' || space[r][c] != '|') { space[r][c] = originalchar; } count++; space[r][c] = originalchar; } } return count; }
i use set handle problem, since eliminates problem of counting duplicates.
public int countchars() { set<character> set = new hashset<character>(); (int r = 0; r < height; ++r) { (int c = 0; c < width; ++c) { if (space[r][c] != '.' && space[r][c] != '|') { set.add(new character(space[r][c])); } } } return set.size(); } this solution assumes . , | 2 characters want exclude. if had in mind count letters (or letters , numbers) please update problem statement.