I'm about to go crazy. Maybe it's cause I've been working for 12 hours....but why will my if statment not evaluate to true when running if (band.equals("4384")?? I am printing band to the screen and it is reading 4384 but it will not evaluate to true. I've used .equals() so many times with out issue, what am I doing wrong?
public class Test {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        String endBand = " ";
        String str = "SCELL: UARFCN 4384, Prim. SC: 362, RSCP: 70, EcNo: 44";
        endBand = getBandNumber(str);
        System.out.println("endBand is " + endBand);
    }
    // ************************************************
    // Returns the current band that the device is on.
    // Currently only coded for 3G
    // ************************************************
    private static String getBandNumber(String str) {
        // The string returned to str will be in the form of:
        // "SCELL: UARFCN  4384, Prim. SC: 362, RSCP: 73, EcNo: 33"
        // ^^^^
        // String str = read_AT("AT+XL1SET=\"IRATSCEL?\"", 10);
        String band = " ";
        int begin = 0, end = 0;
        // Filter through the string to extrace the channel number
        for (int i = 0; i < str.length(); i++) {
            char c = str.charAt(i);
            if (c == 'N' && str.charAt(i + 1) == ' ') {
                begin = i + 1;
            } else if (c == ',') {
                end = i;
                break;
            }
        }
        band = str.substring(begin, end);
        System.out.println("band is " + band);
        if (band.equals("4384")) {
            band = "5";
        } else {
            band = "2";
        }
        return band;
    }
}
                You have a space in your band variable in front of 4384. Try to print like this:
System.out.println("band is '" + band + "'");
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With