Pegar valor de um vetor

11 respostas
U
como faço para pegar um valor de uma posição do vetor string[] eu to tendo problemas e nao estou sabendo resolver

me passaram um função assim:

meu vetor eh assim:

String N[] = {“85090223000000000002627315100400105200385071”};

for (f=2;i>0;i){

if(i==5)

i;

int v=Integer.valueOf(N[i]).intValue();

p+=v*f;

f++;

if (f==10)

f=2;

}

Mas nao ta funcionando da erro na linha int v=Integer.valueOf(N[i]).intValue();

11 Respostas

Ironlynx

Ulyx,há zilhões de erros aí…
Não entendi o array de Strings de uma só posição…Pq do for?
Vc quer varrer o q?
A variável i é inicializada aonde?
Com um valor desses ,v nunca poderia ser int!Nem long aguenta…
Dará sempre ArrayIndexOfBoundsException …pois qquer posição diferente de N[0] não existe… Quem eh f???

U

bom deixa eu explicar…

esse array tem que ter 43 posições…
eu quero varrer cada uma dessas posições, pegar o valor e multiplica-lo por f
i eh inicializado com 43 na declaração da variavel…

eu usarei isso pra calculos de codigo de barra para boletos

cv1

Ulyx, não dá pra simplesmente fazer:

String s = "1238108239712056"; int x = s[4];

Java não possui essa operação com Strings - coisa que dava pra fazer em C e C++. Uma alternativa seria:

String s = "1238108239712056"; int x = Integer.parseInt(s.charAt(4));

Ironlynx
 sacando agoramas dah forma q vc tah declarando eh uma posição  no array!Detalhe:

//5 posições

String ArrayDeStrings[] = {“string1”,“string2”, “string3”, “string4”, “string5”};

//uma posição

String ArrayDeStrings[] = {“string1string2string3string4string5”};

Por isso funciona o método do cv,q pega um elemento(um char) de uma string inteira de uma dada posição(no caso 4),e não um array.

U

continuo com duvidas…
como varrer cada posiçao, passar para int e multiplicar…continua dando erro aqui
e como faço pra substituir uma posição x por um valor diferente

Ironlynx
Ulyx,vc pode pegar essa String numérica e transformá-la num vetor de caracteres:

String s=12381;

char[] c=s.toCharArray();

pronto,vai varrendo as posições e manipulando char a char!
U
funcionouagora como faço pra passar um novo valor pra posição 5

public String Codigo(){

char f=0,i=43,p=0;

String valor=Valor();

String r=teste();

String N= 85090+r+valor+2627315100400105200385071;

char[] c=N.toCharArray();

for (f=2;i>0;i){

if(i==5){

i;

}

p+=c[i]*f;

f++;

if (f==10)

f=2;

}
p=p%11;  <aqui ta dando erro de baixa precisão>
 p-=11;
 c[5]= p;
 cb=""+c;
U

amigos nao ta funcionando direito…pq cada posição do vetor ta devolvendo caracteres diferentes dos cadastrados tipo @#$%&*

Ironlynx

Ulyx,
Vc provavelmente tah gravando em algum fluxo q não dah saída a determinados parâmetros…tipo gravar um Stream de Bytes ao invés de um PrintWriter(q grava caracteres),ou vc pode estar não fazendo o casting corretamente para alguma variável.(Lembre-se q se vc tah convertendo string p/char e quer saida para inteiros vc terá q fazer um Cast p/int)Preste atenção no q vc quer retornar!Uma String?Um int?Um char?Já conseguiu resolver?

R

Olá Ulyx…

o que você quer não é algo do tipo…

public class MultiplicaVetor {
	private String vetor     = "[telefone removido]",
	               resultado = "";
	private final int MULTIPLICAR_POR = 2;
	
	public MultiplicaVetor() {
		for (int i = 0; i < vetor.length(); i++) {
			resultado += ((Integer.parseInt("" + vetor.charAt(i))) * MULTIPLICAR_POR);
		}
		
		System.out.println(resultado);
	}
	
	public static void main(String[] args) {
		MultiplicaVetor multiplicaVetor = new MultiplicaVetor();
	}
}

até mais, Thiago.

U

com as dicas dadas antes e um pouco de cerebro quente consegui resolver…valeu…

Criado 15 de novembro de 2003
Ultima resposta 16 de nov. de 2003
Respostas 11
Participantes 4