O que falta no Java: String

10 respostas
francisco.gamarra

Da série “o que falta no java”
http://www.guj.com.br/posts/list/15/57419.java
http://www.guj.com.br/posts/list/53066.java

O que falta na Classe String

1 : String getLeft( int qtd ) - Pegar casas da esquerda
2 : String getRight( int qtd ) - Pegar casas da direita
3 : boolean in( String[] args ) - verifica se está na lista

10 Respostas

T

“LEFT$” do VB parece fácil de simular:

String s = “abcdef”;
s = s.substring (0, 3) // equivale, mais ou menos, a s = LEFT$(s, 3) do VB.

O problema é se a string tem menos de 3 caracteres; nesse caso, em vez de voltar menos caracteres, ocorre um StringIndexOutOfBounds.

Eu tive de criar um método que faz exatamente isso.

A mesma coisa para o “RIGHT$”.

Acho que não faz sentido ter um “in”, já que ele é fácil de simular:

Arrays.asList (new String[]{“DF”, “BA”, “SP”}).contains (“BA”) é a mesma coisa que o proposto “BA”.in (new String[]{“DF”, “BA”, “SP”});

furutani

Olá

Um dia senti a falta de um replaceLast().
Por exemplo:

String a = "GUJ_GUJ_GUJ"; s.replaceLast("GUJ", "JAVA");//retornaria "GUJ_GUJ_JAVA"

dreamspeaker

furutani:
Um dia senti a falta de um replaceLast().
Por exemplo:

String a = "GUJ_GUJ_GUJ"; s.replaceLast("GUJ", "JAVA");//retornaria "GUJ_GUJ_JAVA"

StringBuilder x = new StringBuilder("GUJ_GUJ_GUJ"); int liof = x.lastIndexOf("GUJ"); x.replace(liof, liof+4, "JAVA");

Eu sei, seu sei, StringBuilder!=String, mas IMHO, sair criando método pra cada coisa que se resolve com o que já tem é desnecessário.

furutani

Ola

Se for para usar metodos já existentes dá para fazer usando String mesmo, como eu fiz.
Alias dá pra fazer quase tudo incluse, um metodo para capitalizar uma String
Por exemplo:

String s = "EU ADORO O GUJ"; s.capitalize(); // retornaria Eu Adoro O Guj
Na verdade eu só queria esses metodos por comodidade mesmo :smiley:

francisco.gamarra

Na verdad todos os métodos são mesmo por comodidade, mas uma comodidade que tb traz legibilidade.
poxa, um
s.getLeft(3) é mt + legível q s.substring (0, 3),
e um s.getRight() então nem se fala.
com relação ao “in” tb, apesar do colega thingol ter toda razão de ser fácil de simular, tb seria muito + legível.

alguém + sente falta de algum método?

nicoweda

Eu to bem satisifeito com a API da String… nunca me deparei com nada que
me tirasse o sono…

E normalmente quando encontro alguma coisa que requer mais trabalho acabo criando o famoso StringUtil… rs

Normalmente essas coisas sao mto customizadas e po isso naum me incomodo em ter que fazer na mao!

L

Vai trabalhar com Java 1.3 pra vc ver… nem substring tem, split? coitado hahahahahaah, replaceAll? chora neném…

S

francisco.gamarra:
Da série “o que falta no java”
http://www.guj.com.br/posts/list/15/57419.java
http://www.guj.com.br/posts/list/53066.java

O que falta na Classe String

1 : String getLeft( int qtd ) - Pegar casas da esquerda
2 : String getRight( int qtd ) - Pegar casas da direita
3 : boolean in( String[] args ) - verifica se está na lista


Não é que falta. O caso é que nem sempre precisamos de usar estas funcionalidades. É bem específico.
Não é possível cobrir todas as necessidades String em uma classe só. java.lang.String é bem madura para dizer que falta algo…

gomesrod

Pode faltar uma coisinha ou outra de vez em quando, mas nada que a nossa querida org.apache.commons.lang.StringUtils não tenha! :slight_smile:

Praticamente tudo o que foi citado aqui no tópico está nessa classe.

francisco.gamarra

eu partircularmente acho que todas as funcionalidades muito comuns deveriam estar incluidas na classe String,
isso faz parte do conceito de encapsulamento. Utilizando outras classes para resolver problemas q a propria classe deveria resolver é utilizar Programação Procedural e não POO. É claro q a maioria acaba utilizando realmente outras classes - como a StringUtils - para resolver estes problemas. Eu mesmo utilizo, mas utilizo por que sou OBRIGADO a utilizar, afinal de contas a String é final. Realmente creio que a String deveria ser atualizada.

Criado 14 de maio de 2007
Ultima resposta 17 de mai. de 2007
Respostas 10
Participantes 8