Contar posicoes de um nome [RESOLVIDO]

6 respostas
H

Boa tarde pessoal!
Sou iniciante em java e meu professor me deu o seguinte exercicio:
Desenvolva uma classe em java que receba um nome e dois números e depois escreva as letras que aparecem entre as posições informadas. Nos dois números. Exemplo:
- Se for informado ?Escola? 2 5 o resultado será cola
- Se for informado ?Maria Jose de Souza? 6 9 o resultado será Jose

vou postar aqui o meu código:
package exercicio04;

import java.util.Scanner;

public class Main {
    
    public static void main ( String[] args ) {
       
        Scanner sc1 = new Scanner(System.in);
        System.out.println("Informe um nome");
        String pv1 = sc1.next();

        Scanner sc2 = new Scanner(System.in);
        System.out.println("Informe o primeiro valor");
        int pv2 = sc2.nextInt();

        Scanner sc3 = new Scanner(System.in);
        System.out.println("Informe o segundo valor");
        int pv3 = sc3.nextInt();

        System.out.println("Os caracteres do intervalo correspondente aos valores informado são " + pv1.substring(pv2-1, pv3));
        
    }
}

só que ta com um pequeno problema, não sei se o exemplo que o professor passou esta errado, ou se o meu exercicio esta errado, pois quando digito o exemplo que ele passou, o da escola o meu aparece somente scol
será que alguém pode me ajudar?

6 Respostas

thiago.correa

Use o nextLine.

Bom, agora você terar que ler, a partir da posição inicial, até a posição final passada pelo usuário, ler caracter a caracter e salvar em uma variável auxiliar, o método para ler um caracter em uma determinada posição é o charAt(int i) onde i é a posição que deseja ler!

Tenta aí qualquer coisa posta os avanços com possíveis dúvidas!

Frantic_Avenger

Você está usando o substring e subtraindo -1 do primeiro número fornecido pelo usuário, esse método inclui o 1º parâmetro recebido e exclui o 2º.
Logo: escola vai da posição 0 até a posição 5
E o usuário passando 2 (-1) e 5 irá pegar ‘s’ (letra na posição 1 inclusa) até a letra ‘a’ (letra na posição 5 exclusa) saindo então scol. Suponho que o certo para o que você quer é somar +1 no segundo número fornecido pelo usuário.
Flw

H

coloquei o nextLine na string la em cima
e tirei o -1 do primeiro e coloquei +1 no segundo e deu certo!
valeu mesmo!
obrigado

thiago.correa
String pv1 = sc1.nextLine();

Não sabia que você podia usar o substring no exercício, pensei que tivesse que implementar algo na mão eheheheh

H

então thiago, eu ja tinha mudado os valores do substring la embaixo do segundo numero pra +1
ele dava certo no exemplo da escola, mas quando eu tentava colocar o segundo exemplo que ele passou dava pau!
ai coloquei o nextLine que voce falou na string e deu certo!

Frantic_Avenger

thiago.correa:

Não sabia que você podia usar o substring no exercício, pensei que tivesse que implementar algo na mão eheheheh

Tá escrito no primeiro post dele o substring (System.out.println("Os caracteres do intervalo correspondente aos valores informado são " + pv1.substring(pv2-1, pv3)); ) Mas tá bem no meio do código que pode realmente passar despercebido. :smiley:

Criado 13 de abril de 2010
Ultima resposta 13 de abr. de 2010
Respostas 6
Participantes 3