public String subStringByByte(String s, int i) { if(s.equals("") || i<0) return ""; byte[] b = s.getBytes(); if(i>b.length) return s; String cStr = new String(b, i-1, 2); if(cStr.length()==1 && s.contains(cStr)) i-=-1; return new String(b, 0, i); }