De objeto para String

8 respostas
G

olá, sou novo no fórum mas tenho uma dúvida.
Criei um vetor com 10 posições, e quero retornar o tamanho (length)dos objetos em determinadas posições, mas ñ consigo transformá-los em string para fazer a contagem de caracteres. Como faço pro sistema interpretar os objetos inseridos no vetor como sendo Strings?

Desde já agradeço;

Gregori Maus

8 Respostas

luciano.eti

hhmm, desculpe mas acho que não entendi muito bem...

esse array seria do que ...?? String's?!? vou arriscar...
public class Objetos {
	public static void main(String[] args) {
		Object[] stringDeObjeto = new String[10];
		
		System.out.println(stringDeObjeto.length);
	}

}
por acaso seria isso???

[]'s

Luciano

G

talvez a pergunta tenha ficado meio confusa mesmo…
o lance é que eu criei este vetor com 10 posições, onde serão inseridos os nomes de pessoas.
Logo quero criar uma função que verifique esses nomes e me escreva o maior nome e a posição dele, tipo se o “Fabrício” for o maior nome no vetor e estiver na posição 3, me retorne “Fabrício, 3”.
Mas não tô conseguindo pois quando tento usar a função “length” pra contar os caracteres, a IDE me indica que é impossível utilizar esta função com um objeto (pois dentro dos vetores eles são objetos) e sim somente com Strings.
Talvez exista outra forma de fazer esta função sem contar os caracteres, mas como achei esta a forma mais fácil tentei assim, só que infelizmente não tá funcionando.
Se puder ajudar fico muito grato.

Abraços

B

Pergunta:

Se ele é um vetor de nomes, por que não é um vetor de String? Seria um vetor de Pessoa?

G

cara, não saquei. tem como criar um vetor de strings?

eu tô fazendo assim:
import java.util.Vector;

public Class Cadastros {

   public static void main (String [] args) {

          Vector vt = new Vector (2);

         vt.add ("Marcelo");
         vt.add ("Edivânio");      <- aqui dentro eles são inseridos como objetos não?

         String x = vt.elementAt (1); <- quando tento fazer isto para depois contar os caracteres ele me diz que ñ 
                                                       pois o elemento é um objeto e ñ pode ser iqualado à uma String.
  
   }

}

Sacou?
Tem outra forma de fazer?

O

Você pode fazer um cast:

String x = (String) vt.elementAt (1);

Ou usar o generics:

Vector<String> vt = new Vector<String>(2);

Talvez você queira já ir se acostumando a usar a flexibilidade de programar orientado a interfaces e não implementações:

List<String> vt = new Vector<String>(2);

Se você já sabe o tamanho que a lista vai ter, pode ser interesante iniciá-la, como você fez. Assim você não paga o custo de realocação quando a capacidade atual é alcançada, mas isso só vale pra listas grandes.

List<String> vt = new Vector<String>();

E por fim, talvez você não queira pagar o custo de um List sincronizado, e com o tamanho dobrado cada vez que o limite é alcançado (em vez de 50% no caso do ArrayList):

List<String> vt = new ArrayList<String>();

Ah, desse jeito você pega o elemento com get:

String x = vt.get(1);
luciano.eti
legal o exemplo do ozix, mas pensei que estivesse precisando de algo parecido com isso...
public class Objetos {
	public static void main(String[] args) {
		String[] nomes = { "Gregori", "Bruno", "Luciano", "Ozix" };
		int maior = 0;
		int posicao = 0;

		for (int i = 0; i < nomes.length; i++) {
			if (nomes[i].length() > maior) {
				maior = nomes[i].length();
				posicao = i;
			}
		}

		System.out.println("\n\tMaior nome: " + nomes[posicao] + " Posição: "
				+ posicao);

	}
}
[]'s

Luciano

O

Na verdade meu post foi pra tirar a dúvida inicial do tópico que era como pegar o uma String de um Vector não parametrizado, mas seu programa é o que responde ao que ele explicou depois. Bom de qualquer formar fica aí uma dica sobre o uso do List. :slight_smile:

G

Valeu Ozix pela ajuda na questão, foi muito esclarecedor, e valeu Luciano por resolver o problema.
Muito boa a iniciativa deste fórum e só de início já deu pra ver a qualidade dos usuários!

Obrigado a todos!

Criado 5 de junho de 2009
Ultima resposta 6 de jun. de 2009
Respostas 8
Participantes 4