Well, I would avoid using re-concatenation of strings , for starters. This is a very well known performance issue.
In this case, you know the exact length with which you need to start, so you don't even need to StringBuilder- a char[]in order:
char[] result = new char[srcString.length()];
for (int i = 0; i < result.length; i++) {
result[i] = (char) (srcString.charAt(i) + shiftValue);
}
String destString = new String(result);
( toCharArray, , , . , . , O (N), O (N 2)).
, - , , , , . A-Z, A-Z... 1 Z A, " Unicode Z" ( [). , .