Matt Robinson
Matt Robinson

Reputation: 305

Is it possible to compare two characters in Processing?

I am a novice programmer and I am trying to compare two characters from different strings, such that I can give an arbitrary index from each string and check to see if they match. From the processing website it seems that you can compare two strings, which I have done, but when I try to do so with characters it seems that the arguments (char,char) are not applicable. Can someone tell me where I am going wrong? Thanks.

Upvotes: 0

Views: 2726

Answers (3)

jesses.co.tt
jesses.co.tt

Reputation: 2729

Yep. Just use == as it gets interpreted as a char datatype. This is assuming you've split the char from the String...

char a = 'a';
char b = 'a';
if(a == b) {
 // etc
}

As mentioned above, use .equals() for String comparison.

String a = "a";
String b = "a";
if(a.equals(b)) {
 // etc
}

Also, the proper way to cast a char as a String is str() not string()

Upvotes: 0

George Profenza
George Profenza

Reputation: 51837

You can use String's charAt() method/function to get character from each string at the desired index, then simply compare:

String s1 = ":)";
String s2 = ";)";

void setup(){
  println(CompareCharAt(s1,s2,0));
  println(CompareCharAt(s1,s2,1));
}

boolean CompareCharAt(String str1,String str2,int index){
  return s1.charAt(index) == s2.charAt(index);
}

Note that when you're comparing strings == doesn't help, you need to use String's equal()

String s1 = ":)";
String s2 = ";)";

println(s1.equals(s2));
println(s1.equals(":)"));

Also, if data comes from external sources, it's usually a good idea to compare both strings at using the same case:

println("MyString".equals("myString"));
println("MyString".toLowerCase().equals("myString".toLowerCase()));

Upvotes: 2

Kidus
Kidus

Reputation: 1833

maybe you can pass the argument after converting(typecasting) the char to string.

(string(char),string(char))

Upvotes: 1

Related Questions