文字列型の日付計算を行うにはCalendarクラスとSimpleDataFormatクラスで計算可能です。
Calendar cal = Calendar.getInstance();
Calendarクラスのインスタンスを生成し、setメソッドを使用します。
Calendar cal = Calendar.getInstance();
cal.set(2011,0,1);
これで20110101をセットしたことになります。年月日の順でセットしますが、月だけ0~11になります。
ここから3日マイナス計算したい場合
Calendar cal = Calendar.getInstance();
cal.set(2011,0,1);
cal.add(Calendar.DATE,-3);
これでマイナス3日しています。あとはcalendar.getTime()で日付取得することができます。
以下、例です。
String ymd = "20110101";
Calendar cal = Calendar.getInstance();
cal.set(Integer.parseInt(ymd.substring(0,4)),
Integer.parseInt(ymd.substring(4,6)) - 1,
Integer.parseInt(ymd.substring(6,8)));
cal.add(Calendar.DATE,-3);
SimpleDataFormat sdf = new SimpleDataFormat("yyyyMMdd");
String date = sdf.format(calendar.getTime());
System.out.println(date);