public boolean isPalindrome(String s) {
		if (s == null)
			return false;

		if (s.isEmpty())
			return true;

		int start = 0;
		int end = s.length() - 1;

		while (true) {

			while (start < s.length() && !Character.isLetterOrDigit(s.charAt(start)))
				// Out of bound!
				start++;

			while (end >= 0 && !Character.isLetterOrDigit(s.charAt(end)))
				// Out of bound!
				end--;

			if (start >= end) // greater than!
				return true;

			if (Character.toLowerCase(s.charAt(start)) != Character.toLowerCase(s.charAt(end)))
				return false;

			start++; // make the loop going!
			end--;

		}
	}