Implementação de substr em Java

Olá,quero fazer algo como o código abaixo,baixei o commons-lang mas tbm n encontrei:

<html>

    <script type="text/javascript">

        function teste (){
         var str="Helloworld!";
         var n=str.substr(5,3) 
           alert(n);//imprime 'wor'
        }
     </script>

     <body onload="teste()"/>


</html>

http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/String.html#substring(int, int)

ps: Você tem essas certificações e não sabe substring ou eu entendi errado o que você quer?

Use o método substring da classe String. Mas ele tem uma pequena diferemça, pra imprimir “wow” você teria que fazer;

org.subString(5, 7);

Ou seja, especificando o index inicial e o index final.

OU você pode usar só index inicial:

org.subString(5);// imprime world!

É um pouco de preguiça que você tem , não? Veja se o código abaixo está funcionando :slight_smile:

public static String substr (final String str, int pos, int len) {
    return str.substring (pos, Math.min (pos + len, str.length()));
}

Obviamente, estou supondo que você seja esperto suficiente para ter percebido que, neste caso, você terá de usar:

String n = substr (str, 5, 3);

porque não posso adicionar novos métodos à classe String.

Hehe,parece que vários aqui não dormiram bem á noite… :wink:

Tive um pequeno ‘lapso’ aqui, de qualquer forma já me virei.Tô a um dia de tirar ferias e devo ter dado um ‘tilt’.

Obrigado aos gênios que deperdiçaram o precioso tempo respondendo.

[quote=entanglement]É um pouco de preguiça que você tem , não?

[/quote]

Ei meu caro,que me lembre não te pedi ajuda em especifico nem paguei vc pra me responder.

Esse método “substr” do JavaScript e que está disponível também em outras linguagens, com nomes diferentes, é mais prático e intuitivo que o “substring” do Java, e menos enjoado (se a string a ser retornada for menor que o esperado, em vez de gerar uma exceção, simplesmente retorna uma string menor, ou mesmo “”.

Tanto é que eu costumava ter na minha caixa de ferramentas um método igualzinho a esse, para evitar ter de ficar reescrevendo “muito” programas em outras linguagens que pegavam substrings de lugares fixos - eu esqueci de pôr nesse método que postei agora uma proteção contra strings cujo comprimento é menor que “pos”.

Na verdade, o método que tenho na minha caixa de ferramentas é parecido com o seguinte:

public static String substr (final String str, int pos, int len) {  
    if (str.length() <= pos)
        return "";
    else
        return str.substring (pos, Math.min (pos + len, str.length()));  
}

E não posso brincar um pouco (não viu o emoticon ?)

Afinal, você é que é o certificado-mor aqui - eu também tenho um monte de certificações, mas não as fico listando na minha assinatura (infelizmente, são certificações Microsoft que expiraram faz uns cinco anos :slight_smile: ) .

Me excedi…foi mal ai… :smiley:

Hehe…essa assinatura é do tempo que ainda era estagiário e me registrei aqui no GUJ(lá se vão bons 7 anos!!),não me acho o pica das galáxias não, foi só preguiça de tirar. :wink:

É meio esquisito a pessoa perguntar para todo um fórum, e depois dizer “Não te pedi ajuda” ou “não te perguntei nada” … :hunf:

Já retifiquei lá em cima…

Viu? viu? preguiça mesmo. :lol:

Não tem problema de perguntar coisas bobinhas - até porque quando as pessoas perguntam coisas realmente difíceis aqui no GUJ, é difícil alguém responder direito (e o que vejo de respostas erradas ou sem noção aqui é impressionante); muitas vezes acabo terceirizando minha resposta para o Stack Overflow, ou outro site em inglês.

E o que você deve ter percebido em uma resposta que dei há alguns minutos atrás (num printscreen de uma tela do “Visual Studio 2005 Command Prompt” - ha ha ha) é que meu ganha-pão na verdade não é Java, e sim C++, portanto certas coisas que eu deveria saber, se trabalhasse direto com Java (e principalmente Web), nem tenho coragem de responder. Só respondo algumas coisas esquisitas de criptografia em Java, ou de generics, porque são coisas que já trabalhei com elas faz alguns anos atrás.