Dúvida

Não estou conseguindo que o sistema imprima os 7 nomes e quando ele ler mais de 15 caracteres o sistema imprima “error”.
Coloquei meu código assim, no entanto gostaria de alguma dica, pois não estou conseguindo achar algum jeito do sistema ler “Error”.

Posta o código como texto para facilitar o pessoal copiar e colar para testar.

public class Nomesinversos {

	public static void main(String[] args) {
		Scanner leitor = new Scanner(System.in);

		String nome[] = new String[15];

		for (int i = 0; i < 7; i++) {
			System.out.println("Nome " + (i + 1) + " :");
			nome[i] = leitor.next();
		}
		if (nome.length > 15)
			System.out.println("Error" + nome.length);

	}

}

15 caracteres de um elemento (nome) ou 15 elementos no array? Você está testando se passa de 15 elementos e no loop só insere 7 elementos, então nunca vai chegar a 15.

leia 7 nomes, e quando um desses nomes tenha 15 caracteres o sistema imprima “Error”.

A questão é assim: Faça um Algoritmo para ler 7 nomes de até 15 caracteres cada em um array unidimensional (Vetor) e imprimi-los na tela na ordem inversa de entrada (ou seja, primeiro o último nome e assim por diante).

Sobre 15 caracteres teste length() na string de retorno que lê o nome dentro do loop e não no array por fora do loop. Exemplo:

String leitura = leitor.next();

if (leitura.length() > 15) //testando se tem mais de 15 caracteres
{
    System.out.println("error");
}
else
{
    //restante da sua lógica...
}
[/code]Sobre exibir em ordem invertida, o for deverá começar do último indo até o primeiro: 
[code]for (int i = nome.length - 1; i > 0; i--)
//fazer restante...

Eu Fiz basicamente assim:

public static void main(String[] args) {
		Scanner leitor = new Scanner(System.in);

		String nome[] = new String[3];

		for (int i = 0; i < nome.length; i++) {
			System.out.println("Nome: " + (i + 1) + " :");
			nome[i] = leitor.next();

			if (nome[i].length() > 15) {
				System.out.println("Error");
			}
		}
		for (int i = nome.length - 1; i > 0; i--) {
			System.out.println("Nomes: " + nome[i]);

No entanto, no último FOR, ele não está lendo o 1º nome. Não estou conseguindo achar o problema.

[quote=edersombarros]Eu Fiz basicamente assim:

public static void main(String[] args) {
		Scanner leitor = new Scanner(System.in);

		String nome[] = new String[3];

		for (int i = 0; i < nome.length; i++) {
			System.out.println("Nome: " + (i + 1) + " :");
			nome[i] = leitor.next();

			if (nome[i].length() > 15) {
				System.out.println("Error");
			}
		}
		for (int i = nome.length - 1; i > 0; i--) {
			System.out.println("Nomes: " + nome[i]);

No entanto, no último FOR, ele não está lendo o 1º nome. Não estou conseguindo achar o problema.[/quote]

Para ele pegar o primeiro troca de > para maior ou igual, ficando assim:

for (int i = nome.length - 1; i >= 0; i--) {  

[code]
public static void main(String[] args) {
Scanner leitor = new Scanner(System.in);

	String nome[] = new String[7];

	for (int i = 0; i < nome.length; i++) {
		System.out.println("Nome " + (i + 1) + " :");
		nome[i] = leitor.next();

		if (nome[i].length() > 15) { // testendo se tem mais de 15
										// caracteres
			System.out.println("Error");
		}
	}
	for (int i = nome.length-1; i >= 0; i--) {
		System.out.println("Nomes: " + nome[i]);

	}

	leitor.close();
}

}[/code]

Agora sim, valewww javaflex…