Fino a jdk7u6 il metodo della sottostringa was lightning fast perché utilizzava semplicemente puntatori all'interno di una stringa esistente, quindi non richiedeva alcuna copia di memoria. Ho usato questa funzionalità estesamente nell'implementazione dei parser.Soluzione alternativa per il comportamento da jdk6 a jdk7 della sottostringa
Dato il periodo di tempo da quando è stata rimossa questa funzione di prestazioni critiche, è necessario sostituire alcune parti ben oliate.
Nota: Potrei teoricamente tornare indietro e copiare l'implementazione da jdk6. Ma IIRC è stato avvolto abbastanza pesantemente in tutta la classe String - cioè non facilmente estratto.
Quindi una tale implementazione giace intorno - ad esempio in una delle librerie di parser jvm ad alte prestazioni?
Sto solo mantenendo un indice esterno, registrando dove siamo alla stringa. – ZhongYu
@ bayou.io Ciò non risolve la necessità di estrarre e utilizzare la sottostringa in un metodo diverso, ad esempio. – javadba
passa anche l'indice a quel metodo: D ... sostanzialmente sostituisce tutto '(String)' con '(String, int, int)'. (a meno che tu non possa farlo con il metodo di altre persone) fa schifo ovviamente ... – ZhongYu