Non capisco perché Java [metodo String.substring()] (http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html#substring(int,%20int%29) sia specificato nel modo in cui è. Non posso dire di iniziare in una posizione numerata e restituire un numero specificato di caratteri; Devo calcolare Se si specifica una posizione finale oltre la fine della stringa, invece di restituire il resto della stringa per me, Java genera un'eccezioneCome dovrebbe funzionare la sottostringa()?
Sono abituato alle lingue in cui la sottostringa() (o substr()) prende due parametri: una posizione iniziale e una lunghezza.E 'obiettivamente migliore del modo in cui lo fa Java, e in caso affermativo, puoi dimostrarlo? Qual è la migliore specifica della lingua per la sottostringa() che hai visto, e quando mai sarebbe una buona idea per un linguaggio fare le cose in modo diverso? È IndexOutOfBoundsException che Java getta una buona idea di design, o no? tutto questo è appena arrivato alle preferenze personali?
E 'davvero una questione di preferenze personali, che è ciò che rende questo "Soggettivo e argomentativo". Ho bisogno sia della "lunghezza" che della "fine" della sottostringa in momenti diversi, quindi per me non ha senso dire che uno è "migliore" dell'altro. –
Non c'è bisogno di argomenare semplicemente perché è soggettivo. Sheesh. Non possiamo parlare dei meriti relativi delle decisioni linguistiche senza avere una guerra santa? Se Jon Skeet pensa che valga la pena di rispondere e non è solo un invito a discutere, sicuramente questo significa qualcosa? – skiphoppy
Se lo modifico per eliminare le parole "stupito" e "inconveniente", sembrerà meno polemico, dal momento che nessuno ha mai sostenuto? Le domande sulla progettazione della lingua (che nella maggior parte dei casi implicano alcuni compromessi soggettivi) non sono appropriate per Stack Overflow? – skiphoppy