Cortando Strings [RESOLVIDO]

5 respostas
W

Opa…

Beleza galera!?

Preciso saber como faço para cortar os últimos 3 caracteres de um string… cortar os primeiros tá legal, consegui… daí tentei fazer como fazia no PHP, que é colocar números negativos:

ex:

strQuery = strQuery.substring(-3);

Só que não funciona… detalhe é q a string pode variar de tamanho (comprimento)…

Valeu aí pessoal!!!

5 Respostas

peerless

uma das formas:

String ba = "umdoistres123"; System.out.println(ba.substring(ba.length()-3,ba.length()));

Não esquece de uma verificação antes… if (String.length() >= 3) …

W

Opa…

aproveitando…

tem como eu verificar dentro de uma string, se existem letras?!

Eu preciso fazer esta verificação antes de converter para int, pra evitar que o usuário digite bobagens…

tem como?!

valeu!!!

:-o :lol:

thadeurc

Usa o metodo matches da classe string.

Exemplo de codigo

public class Teste {

	public static void main(String[] args) {
		System.out.println(onlyInt("12343"));
	}
	
	static boolean onlyInt(String a){
		return a.matches("\d+");
	}
}
peerless

Para este problema, eu recomendo uma classe aqui do FORUM, da seção tutoriais.. que dei uma leve adaptada:

/**
 *
 * @author Daniel Gonçalves
*  @author peerless
 */

import javax.swing.*;
import javax.swing.text.*;


public class FixedLengthONum extends PlainDocument {
    
    /** Creates a new instance of FixedLengthDocument */

     private int iMaxLength;

  
     public FixedLengthONum(int maxlen) {
       super();
       iMaxLength = maxlen;
     }
     
    //Larissa says: "os clientes do meu pai não pagam"
     
//isNumber(number?_string):boolean - deprecated
   public boolean isNumber(String n) {
       boolean is;
       try {
           Long.parseLong(n);
           is = true;
       }
       catch (Exception e) {
           is = false;
       }
       return is;
   }
    
     public void insertString(int offset, String str, AttributeSet attr)
             throws BadLocationException {
     Gmat gM = new Gmat();
     if (str == null || !isNumber(str)) return;
 
     if (iMaxLength <= 0)        // aceitara qualquer no. de caracteres
     {
         super.insertString(offset, str.toUpperCase(), attr);
         return;
     }
 
     int ilen = (getLength() + str.length());
     if (ilen <= iMaxLength)    // se o comprimento final for menor...
         super.insertString(offset, str.toUpperCase(), attr);   // ...aceita str
     else
     {
         if (getLength() == iMaxLength) return; // nada a fazer
         String newStr = str.substring(0, (iMaxLength - getLength()));
 
         super.insertString(offset, newStr.toUpperCase(), attr);
     }
 }
}
Utilização em TEXTFIELDS, certo? No constructor do seu formulário :
seuJTextField.setDocument(new  FixedLengthONum(NÚMERO_MÁXIMO_DE_CARACTERES));

Esta classe originalmente, era apenas para limitar o tamanho do JTextField,
minha adaptação, além de limitar, faz com que só permita a entrada de números!

abraços

W

bala!!!

além de resolver o meu problema, me deu um novo conceito sobre o funcionamento do try catch… bala mesmo

valeu bruxo…

:lol:

Criado 17 de abril de 2007
Ultima resposta 17 de abr. de 2007
Respostas 5
Participantes 3