import java.lang.reflect.Field; import java.util.Arrays; public class SubstringTest { public static void main(String... args) { String s = "abcdefghijklmnopqrstuvwxyz"; // String nesnesinin ilk hali System.out.println(s); s = s.substring(3, 6); // substring() islemi sonrasi System.out.println(s); try { // Burada ise reflection ile s nesnesinin sahip oldugu karakter // dizisi olan 'value' alanina erisip konsola yazdiriyoruz System.out.println(Arrays.toString(getInnerChars(s))); // Burada da substring den donen sonucu String nesnesinin // yapilandiricisna parametre olarak geciyoruz s = "abcdefghijklmnopqrstuvwxyz"; // String nesnesinin ilk hali System.out.println(s); s = new String(s.substring(3, 6)); // new String(substring()) islemi sonrasi System.out.println(Arrays.toString(getInnerChars(s))); } catch (SecurityException e) { } catch (IllegalArgumentException e) { } catch (NoSuchFieldException e) { } catch (IllegalAccessException e) { } } private static char[] getInnerChars(String s) throws SecurityException, NoSuchFieldException, IllegalArgumentException, IllegalAccessException { Field innerCharArray = String.class.getDeclaredField("value"); innerCharArray.setAccessible(true); char[] chars = (char[]) innerCharArray.get(s); return chars; } }