Deine Lösung für die NullPointerException sollte funktionieren, ist aber irgendwie nicht gerade schön.
Bei der letzten Bedingung könntest du tatsächlich mit length-1 arbeiten. Ich würde den ganzen Block aber irgendwie anders schreiben.
Zum Beispiel mit einer for-Schleife:

Code:
 
public class Array
{
   public static void main(String args[])
   {
      String s[] = new String[20];
      String name = "a";
      
      s[0] = "b";
      s[1] = "c";
      s[2] = "d";
      s[3] = "e";
      s[4] = "d";
      s[5] = "f";
      s[6] = "g";
      s[7] = "h";
      s[8] = "i";
      s[9] = "j";
      
       int i=0;

      int foundAt = -1;

      for( i=0; i<s.length(); i++)
      {
         if(s[i].equals(name))
         {
             foundAt = i;
             break;  //könnte man auch weglassen
         }
      }
      
     
     System.out.println(foundAt);
  
   }
}
Gruß, Dirk