public class LongestSubString { public static void main(String args[]){ String arg = "abacdefgafg"; System.out.println(longestSubStr(arg)); } public static String longestSubStr(String str){ StringBuilder sb = new StringBuilder(str); char[] cs = str.toCharArray(); String maxStr = ""; StringBuilder tmpStr = new StringBuilder(); for(int i = 0; i < cs.length; i++){ if(tmpStr.indexOf(String.valueOf(cs[i])) >= 0){ if(maxStr.length() < tmpStr.length()){ maxStr = tmpStr.toString(); } else { tmpStr.delete(0, tmpStr.indexOf(String.valueOf(cs[i]))); tmpStr.append(cs[i]); } } else { tmpStr.append(cs[i]); } } if(tmpStr.length() > maxStr.length()){ maxStr = tmpStr.toString(); } return maxStr; } }