Given a string as input, return the string with its last 2 chars swapped. And, if the string has less than 2 chars, do nothing and return the input string.
Here is the code I wrote so far:
public class SwapLastChars {
    static String testcase1 = "Hello";
    public static void main(String args[]) {
        SwapLastChars testInstance = new SwapLastChars();
        String result = testInstance.swap(testcase1);
        System.out.println(result);
    }
    public String swap(String str1) {
        String str = "";
        int length = str1.length();
        char last = str1.charAt(length - 1);
        char l = str1.charAt(length - 2);
        if (length == 1)
            return str1;
        for (int i = 0; i < str1.length() - 2; i++) {
            str = str + str1.charAt(i);
        }
        str = str + last + l;
        return str;
    }
}
Problem is in my test cases,any help?
Testcase    Pass/Fail   Parameters  Actual Output   Expected Output
1           pass        'aabbccdd'      aabbccdd        aabbccdd
2           fail        'A'             null            A
3           pass        'hello'         helol           helol
 
     
     
     
     
    