比较java中的数组字符串以获得布尔值

比较java中的数组字符串以获得布尔值,java,arrays,string,comparison,Java,Arrays,String,Comparison,我试图写一个程序,检查字符串的前两个字母和后两个字母是否相同。例如,frontreach(“编辑”);应该返回true。但是,下面的程序仅适用于2个字符字符串,如“ed”。我认为这可能是一个对象比较问题,所以我尝试使用如下行: splitstring[0].equals(splitstring[length - 2]) splitstring[0] == splitstring[length - 2] splitstring[0].equalsIgnoreCase(splitstring[len

我试图写一个程序,检查字符串的前两个字母和后两个字母是否相同。例如,frontreach(“编辑”);应该返回true。但是,下面的程序仅适用于2个字符字符串,如“ed”。我认为这可能是一个对象比较问题,所以我尝试使用如下行:

splitstring[0].equals(splitstring[length - 2])
splitstring[0] == splitstring[length - 2]
splitstring[0].equalsIgnoreCase(splitstring[length - 2])
但我的程序再一次只适用于像“ed”这样的字符串。有什么想法吗?这是我的密码:

public class Mainjazz {

public static boolean frontAgain(String str){

    int length = str.length(); //gets length of string for later use in if statement

    String[] splitstring = str.split(""); //splits string into an array

    if((splitstring[0].equals(splitstring[length - 2])) && (splitstring[1].equals(splitstring[length - 1]))){  //checks if first two letters = last two
        return true;
    }else{
        return false;

    }
}

public static void main(String[] args) {

    System.out.println(frontAgain("edited"));


}

}
编辑:问题解决了,谢谢:)

根据您的算法(以及您发布的代码),我会这样使用


如果
splitstring
等于
“abcdefgab”
,则

splitstring[0].equals(splitstring[length - 2])
本质上相当于

'a'.equals('a')   
如果要比较两个字符,需要

int len = splitstring.length;
splitstring.substring(0, 2).equals(splitstring.substring(len - 2, len);
在尝试比较之前,建议确保字符串的长度(非null)至少为两个字符(可能是四个字符)

祝你好运

public static boolean frontAgain(String str){
        String str1 = str.substring(0,2);
        String str2 = str.substring(str.length() - 2);
        if (str1.equals(str2)) {
            return true;
        }
        else
            return false;
}
通过获取字符串的前2个字符和后2个字符,然后比较它们,这样做会更简单。

希望这有助于:

public boolean areTheSame(String mystring) {

        //if you want to compare ignoring the upper cases
        //mystring = mystring.toLowerCase();

        if(mystring.substring(0, 1).equals(
                         mystring.substring(mystring.length()-2, 
                                            mystring.length()-1))){
            return true;
        }
        else return false;

}

当你只比较两个字符时,为什么它可以工作超过两个字符?谢谢你的帮助。我不明白为什么“a”。equals(“a”)不起作用。这应该是真的,对吧。我理解你的目标是比较两个角色和两个角色。一个也没有。
public boolean areTheSame(String mystring) {

        //if you want to compare ignoring the upper cases
        //mystring = mystring.toLowerCase();

        if(mystring.substring(0, 1).equals(
                         mystring.substring(mystring.length()-2, 
                                            mystring.length()-1))){
            return true;
        }
        else return false;

}