我正在创建一个比较两个字符串的anagram程序,我不确定如何创建一个布尔值,如果两个单词中出现一个字符,则返回true。
我的代码如下:
StringBuffer strbuff1 = new StringBuffer("");
private StringBuffer strbuff2 = new StringBuffer("");
public Anagram (String s1, String s2) {
s1 = strbuff1.toString();
s2 = strbuff2.toString();
}
public boolean contains(char chart1) {
return true; //what do I put here?
}
}
答案 0 :(得分:1)
所以你应该可以使用StringBuffer方法indexOf。请在此处查看api文档:http://docs.oracle.com/javase/7/docs/api/java/lang/StringBuffer.html#indexOf(java.lang.String)
类似的东西:
public boolean contains(char chart1) {
if(strbuff1.indexOf(chart1) >= 0 && strbuff2.indexOf(chart1) >= 0) {
return true;
}
return false;
}
但是,我也认为你的构造函数的变量赋值可能是向后的。
您可能需要strbuff1 = new StringBuffer(s1);
这将创建一个带有给定String对象内容的新StringBuffer。
祝你好运!*编辑包括对两个单词的检查。
答案 1 :(得分:0)
这应该可以满足您的需求
public boolean contains(char chart1) {
return stringOne.contains(Character.toString(chart1)) &&
stringTwo.contains(Character.toString(chart1));
}
如果提供的字符包含在两个字符串中,则返回true,否则返回