O que tem de errado neste FOR e neste IF:
for(int i=0;i<linhas;i++)
{
String tipt = registros.get(i).substring(1, 2);
String mest = registros.get(i).substring(6, 6);
String valt = registros.get(i).substring(13, 12);
if ((tipt.equals(“IR”)) AND (mest < anomes) AND (valt < v))
{
pert = registros.get(i).substring(26, 5);
dedt = registros.get(i).substring(32, 12);
}
}
Qual a melhor forma de testar se um campo é diferente de outro? Tentei <>, not campo.equal mas nada deu certo.
E a melhor forma de colocar IFs com AND e OR?
and = &&
or = ||
para saber o tamanho da string use o suaString.length()
para saber se uma String é igual a outra vc tem q definir se vai fazer diferença entra maiúsculas e minusculas
ou entao fazer o (“tantOFaz”)equalsIgnoreCase(“tantoFAZ”) que vai resultar true
Rapaiz, você não leu a documentação direito. substring não é a mesma coisa que MID do VB ou substr do C++.
O primeiro parâmetro é a posição inicial (em strings do Java, a posição inicial é zero) e o segundo parâmetro é 1 depois da posição final.
Outro probleminha: se a sua string é mais curta que a posição inicial ou final, então vai ocorrer um erro de execução. Portanto não aconselho usar substring assim, cru, na raça, ou como eu diria “sem camisinha”.
Aconselharia você a encapsular esse método para que ele funcione do jeito que você está acostumado.
Você provavelmente precisaria fazer algo como:
pert = registros.get(i).substring(26, 26+5);
dedt = registros.get(i).substring(32, 32+12);
Eu sei como é o substring, começo sempre do zero, tudo bem, e tenho certeza que não terei campo não preenchido, além de serem só zeros, portanto sem problema de maiúsculo ou minúsculo, exceto no campo tipt (que peguei das duas primeiras posições, 0 e 1).
Para dizer a verdade, nem sei qual a melhor documentação, se for no developer.android, acho muito reuim pela falta de exemplos.
Como não localizei o que usar para comparar se um campo é maior, maior ou igual, menor nem menor ou igual a outro.
No comando:
if ((tipt.equals(“IR”)) && (mest > anomes) && (valt <= v))
Diz que os símbolos > e >= são “undefined”
Como substituí-los?
Conselhinho - mest, anomes, valt, v são strings com valor numérico? Se forem, então converta essas strings para números, e compare os números.
Senão você vai ter umas surpresas desagradáveis, do tipo “0001” ser maior que " 10".
De qualquer forma, para saber se a string s1 é maior que a string s2, use:
s1.compareToIgnoreCase (s2) > 0
Os operadores “==”, “<”, “<=”, “>”, “>=” não devem ou não podem ser usados com strings. Isso é uma chateação do Java.
Como eu disse, você não sabe como é o substring. Você acha que o segundo parâmetro é o comprimento desejado 
Já mudei o substring, realmente estava enganado.
São strings preenchidas com zeros ã esquerda e do mesmo tamanho, portanto o erro citado não deve acontecer.
Vou fazer com valores.
Obrigado, amigo, quando estiver ok eu informo que foi resolvido.
Daniel Tibúrcio
Ideia Informática Ltda.
http://www.ideiainformatica.com.br
(31)3291-9799
Skype ideia_daniel
"O Senhor é o meu Pastor, nada me faltará" Salmo 23:1
Um dos campos da minha comparação, apesar de ser numérico no formato AAAAMM (ano e mês) estava como String, e ao converter para double passo a dar erro.
O que eu faço é pegar o conteúdo de dois spinners (messp e anosp) e concatenar com o comando abaixo, fi nele que deu o erro:
String anomest = anosp.toString() + messp.toString();
Só que vi que o conteúdo retornado não é numérico.
Achei algo sobre pegar o conteúdo de spinner, mas não entendi muito bem, podem me ajudar?
Se eu precisar comparar se um string é maior, menor, maior ou igual ou menor ou igual a outro, como devo fazer, já que não aceita > < >= <=?
[quote=entanglement]
De qualquer forma, para saber se a string s1 é maior que a string s2, use:
s1.compareToIgnoreCase (s2) > 0
Os operadores “==”, “<”, “<=”, “>”, “>=” não devem ou não podem ser usados com strings. Isso é uma chateação do Java. [/quote]
Por favor, leia com mais atenção… Se precisar da referência, http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#compareToIgnoreCase(java.lang.String)
Faltou alguém explicar como pegar o conteúdo do spinner, pois não entendi bem.
Poxa, este link do site da Oracle é ruim demais de usar.
[code] Spinner a = new Spinner();
a.getSelectedItem().toString();[/code]