Atribuição pouco "comum"!

6 respostas
neeryck
meuArrayList.get(i).split("/")[1] = 10;

Porque isso executa, mas a atribuição não é feita???

Existe uma maneira de atribuir algo nesse genero?? Sem precisar dar split’s e concatenar novamente???

Em se tratando de split… pq ele é “mau visto”???

[]'s

6 Respostas

M

Você quer fazer o que exatamente? Você simplesmente não disse.

O meuArrayList é do tipo List, certo? Se sim, o split retornará um “String[]”, o qual não se pode fazer a atribuição de um int. Além disso, a atribuição para o array não implica em alteração da String (até por que String é imutável).

Talvez você precise de regex. Se você disser o que quer fazer poderemos ajudar, senão vamos ter que esperar a bola de cristal do ViniGodoy sair do conserto para adivinharmos o que você quer fazer.

Abdon
meuArrayList.get(i).split("/")[1] = 10;

Isto não é atribuido prq o metodo split retorna um array de String que não tem mais nada haver com a propridade meuArrayList.get(i).

Ou seja vc pode alterar a vontade que a alteração nunca ira refletir na lista.

Fora que isto nem compila.

neeryck

marcobiscaro2112:
Você quer fazer o que exatamente? Você simplesmente não disse.

O meuArrayList é do tipo List, certo? Se sim, o split retornará um “String[]”, o qual não se pode fazer a atribuição de um int. Além disso, a atribuição para o array não implica em alteração da String (até por que String é imutável).

Talvez você precise de regex. Se você disser o que quer fazer poderemos ajudar, senão vamos ter que esperar a bola de cristal do ViniGodoy sair do conserto para adivinharmos o que você quer fazer.

É uma String e o “10” tb. Achei que ficasse claro que se eu dei um split É PQ ELE FOI DECLARADO DE TAL FORMA :shock:
Deixa eu desenhar…

SABE QUANDO VC DECLARA UMA STRING?
SABE QUANDO VC COLOCA UM VALOR DO LADO DO SINAL “=” ??
Mais ou menos assim:

String inutil = "Escrever o que nao agrega nenhum conhecimento, é coisa de tolo!" ;

ENTAO, SE VC ME ENTENDEU AGORA, A IDÉIA SERIA ATRIBUIR UM VALOR (nas circunstâncias acima) em um ArrayList que estivesse concatenado com outro valor indicando o indice com a qual quero atribuir o novo! o.O" UFFA!

É… eu aposto em duas coisas quanto ao ViniGodoy compreender o que dizem aqui no fórum, a primeira é a “bola de cristal” a segunda é BOM SENSO (manja? Pra bom entendedor um pingo é letra? :D) e conhecimento que nãao é QUALQUER UM que adquire, principalmente quando se encaixa na frase do Epítero abaixo =D

Entendo… mas ele compila sim meu velho! Testa aí…só não vai compilar se vc colocar algo como != ou == :smiley:

[]'s

Mero_Aprendiz

Olá neeryck.
Algumas observações sobre o seu código:
1.º - Não dá para tribuir um valor a uma String dessa forma. como já foi dito aqui, String é imutável. Seu codigo teria que ser no aparentemente assim:

meuArrayList.add(meuArrayList.get(i).split("/")[1] = "10");

O que já muito estranho por si só.

2.º - Quem faz o Split da String e um cara chamado java.util.regex.Pattern, que no metodo split(CharSequence input, int limit) cria uma nova lista de String e depois de uma lógica retorna um String[], que não tem qualquer associação com a String original.

Então esse seu código não vai mesmo funcionar.

[]'s
JL

neeryck

Mero_Aprendiz:
neeryck:

Entendo… mas ele compila sim meu velho! Testa aí…só não vai compilar se vc colocar algo como != ou == :smiley:

Olá neeryck.
Algumas observações sobre o seu código:
1.º - Não dá para tribuir um valor a uma String dessa forma. como já foi dito aqui, String é imutável. Seu codigo teria que ser no aparentemente assim:

meuArrayList.add(meuArrayList.get(i).split("/")[1] = "10");

O que já muito estranho por si só.

2.º - Quem faz o Split da String e um cara chamado java.util.regex.Pattern, que no metodo split(CharSequence input, int limit) cria uma nova lista de String e depois de uma lógica retorna um String[], que não tem qualquer associação com a String original.

Então esse seu código não vai mesmo funcionar.

[]'s
JL

Excelente resposta meu velho!
Quando há uma necessidade similar, uso o set() “getando” a própria lista dentro dela na posição do conteúdo ! De fato é ESTRANHO! rs

[]'s

M

neeryck:
marcobiscaro2112:
Você quer fazer o que exatamente? Você simplesmente não disse.

O meuArrayList é do tipo List, certo? Se sim, o split retornará um “String[]”, o qual não se pode fazer a atribuição de um int. Além disso, a atribuição para o array não implica em alteração da String (até por que String é imutável).

Talvez você precise de regex. Se você disser o que quer fazer poderemos ajudar, senão vamos ter que esperar a bola de cristal do ViniGodoy sair do conserto para adivinharmos o que você quer fazer.

É uma String e o “10” tb. Achei que ficasse claro que se eu dei um split É PQ ELE FOI DECLARADO DE TAL FORMA :shock:
Deixa eu desenhar…

SABE QUANDO VC DECLARA UMA STRING?
SABE QUANDO VC COLOCA UM VALOR DO LADO DO SINAL “=” ??
Mais ou menos assim:

String inutil = "Escrever o que nao agrega nenhum conhecimento, é coisa de tolo!" ;

ENTAO, SE VC ME ENTENDEU AGORA, A IDÉIA SERIA ATRIBUIR UM VALOR (nas circunstâncias acima) em um ArrayList que estivesse concatenado com outro valor indicando o indice com a qual quero atribuir o novo! o.O" UFFA!

É… eu aposto em duas coisas quanto ao ViniGodoy compreender o que dizem aqui no fórum, a primeira é a “bola de cristal” a segunda é BOM SENSO (manja? Pra bom entendedor um pingo é letra? :D) e conhecimento que nãao é QUALQUER UM que adquire, principalmente quando se encaixa na frase do Epítero abaixo =D


Bom, você explicou como se declara uma String mas não fez isso no seu código. Perceba que o 10 não está entre aspas duplas. Portanto é um int e não uma String.

A propósito, algum problema com o Shift/Caps Lock do seu teclado?

E quanto à questão do bom senso, como acho que escrevi aquilo acima? Se eu não usasse meu bom senso nem poderia escrever, uma vez que você não explicou o seu problema o primeiro post. Talvez o bom senso falte para algumas pessoas que esperam que adivinhemos e solucionemos seus problemas.

Talvez minha capacidade de compreensão esteja falha hoje mas, sinceramente, ainda não entendi bem o que você quer fazer. Pelo pouco que entendi, continuaria sugerindo expressões regulares.

Criado 4 de fevereiro de 2010
Ultima resposta 4 de fev. de 2010
Respostas 6
Participantes 4