I read in another thread that StringBuilder is superior to String Concatenation, especially within loops. However, I solved the problem in two different ways, and the StringBuilder method took nearly double the runtime - The logic is otherwise the same, so why might this be?
class Solution {
public int reverse(int x) {
    
    boolean isNeg = false;
    
    if(x < 0){
        x *= -1;
        isNeg = true;
    } 
    
    ArrayList <Character> arrlist = new ArrayList<>();
    String reverse = "";
    StringBuilder sbdr = new StringBuilder();
    String s = Integer.toString(x);
    
    for(int i = 0; i < s.length(); i++) arrlist.add(s.charAt(i));
    
    while(arrlist.get(arrlist.size()-1) == '0' && arrlist.size() > 1) {
        arrlist.remove(arrlist.size()-1);
    }
    
    for(int i = arrlist.size()-1; i >= 0; i--) sbdr.append(arrlist.get(i));
    try {
        if(isNeg) return Integer.valueOf(sbdr.toString())*-1;
        return Integer.valueOf(sbdr.toString());
    } catch (Exception e){
        return 0;
    }
}
}
class Solution {
public int reverse(int x) {
    
    boolean isNeg = false;
    
    if(x < 0){
        x *= -1;
        isNeg = true;
    } 
    
    ArrayList <Character> arrlist = new ArrayList<>();
    String reverse = "";
    String s = Integer.toString(x);
    
    for(int i = 0; i < s.length(); i++) arrlist.add(s.charAt(i));
    
    while(arrlist.get(arrlist.size()-1) == '0' && arrlist.size() > 1) {
        arrlist.remove(arrlist.size()-1);
    }
    
    for(int i = arrlist.size()-1; i >= 0; i--) {
        reverse += Character.toString(arrlist.get(i));
    }
    
    try {
        
        if(isNeg) return Integer.valueOf(reverse)*-1;
        else return Integer.valueOf(reverse); 
        
    } catch (Exception e){
        return 0;
    }
    
}
}