java - String converting to Char and then to Int -
i'm writing palindrome function school take string argument , remove punctuation. purpose of class, have use substring() method.
my code takes substring of each character in string argument , converts char, , int. then, checks if integer within ascii numbers a-z or a-z , if is, substring appended blank string (s2).
my main issue when try compile program, error saying substring can't converted char. ideas on why?
public palindrome(string s) { for(int = 0; < s.length(); i++) { // checks if character uppercase letter if((int) character.valueof(s.substring(i, + 1)) >= 65) if((int) character.valueof(s.substring(i, + 1)) <= 90) s2 += s.substring(i, i+1); // checks if character lowercase letter if((int) character.valueof(s.substring(i, + 1)) >= 97) if((int) character.valueof(s.substring(i, + 1)) <= 122) s2 += s.substring(i, i+1); } }
a string
object is not character
or char
, if length of string
one. casting trying fool compiler, not change actual underlying object.
if string#charat()
forbidden, can use string#tochararray()
return char[]
(of length 1 in case). e.g.
char[] mychar = s.substring(i, + 1); // mychar[0] contains character
then test if it's letter, can use
character.isletter(mychar[0]);
beware when cast
(int)character.valueof(...)
a character
object returned valueof()
, not char
. work, because compiler unboxing of character
char
.
if want use ascii code instead of character#isletter()
, can do:
char[] mychar = s.substring(i, + 1); int thecharasint = (int)mychar[0]; // proceed test range
because native char
value can read native int
value.
int codea = (int)'a'; // codea == 65
Comments
Post a Comment