I have written a program in Java 8 using BlueJ. There is just one function of type byte that accepts two String values and return 1 if the first word comes before the second in alphabetical order, and return -1 if the first word comes after the second in alphabetical order,  and 0 if both are equivalent strings. I would welcome any suggestions on how to make my code faster and more readable.
```java
public class Test
{
    public static byte spaceshipAlphabetical (String str1, String str2)
    {
        int str1Length = str1.length();
        int str2Length = str2.length();
        int strLength;
        if 
        (str1Length < str2Length)
        {
            str2 = str2.substring(0, str1Length);
            strLength = str1.length();
        }
        else
        {
            str1 = str1.substring(0, str2Length);
            strLength = str2.length();
        }
        str1 = str1.toUpperCase();
        str2 = str2.toUpperCase();
        char charStr1;
        char charStr2;
        int intChar1 = 0;
        int intChar2 = 0;
        for 
        (int i = 0; i < strLength; i++)
        {
            charStr1 = str1.charAt(i);
            charStr2 = str2.charAt(i);
            intChar1 = (int) charStr1;
            intChar2 = (int) charStr2;
            if
            ((intChar1 < intChar2) || (intChar2 < intChar1) || ((intChar2 == intChar1) && (i == (strLength - 1))))
            { 
                break;
            }
        }
        if
        ((intChar1 < intChar2) || ((intChar2 == intChar1) && (str1Length < str2Length)))
        { 
            return 1;
        }
        else if
        ((intChar2 < intChar1) || ((intChar2 == intChar1) && (str2Length < str1Length)))
        {
            return -1;
        }
        else 
        {
            return 0;
        }
    }
```