O que significa esta mensagem? "java.util.Scanner[delim..."

Fala galera, tudo certo?

Estou estudando Java e criei um código para identificar se a palavra que o usuário digitou é um palíndromo ou não.

O programa funciona normalmente, mas entre as saídas no console, aparece a seguinte mensagem:

java.util.Scanner[delimiters=\p{javaWhitespace}+][position=5][match valid=true][need input=false][source closed=false][skipped=false][group separator=.][decimal separator=,][positive prefix=][negative prefix=\Q-\E][positive suffix=][negative suffix=][NaN string=\Q?\E][infinity string=\Q?\E]

O que significa ela? Tem como eu remover ela da saída?

Segue meu code:

package programa;

import java.util.Scanner;

public class Programa {
    
    public static void main(String[] args){
        
        String palavra;
                
        Palindromo palindromo = new Palindromo();
        Scanner scan = new Scanner(System.in);
        
        System.out.println("Digite uma palavra para saber se ela é um PALÍNDROMO: ");
        palavra = scan.nextLine();
        
        System.out.println(scan);
        palindromo.setPalavra(palavra);
        palindromo.mostraResultado();
        
    }

}

package programa;

public class Palindromo {
    
    private String palavra = "";
    private String resultado = "";
    
    public String getPalavra() {
        return palavra;
    }
    
    public void setPalavra(String palavra) {
        this.palavra = palavra;
    }
    
    //Método que analisa a palavra informada e exibe resultado
    
    void mostraResultado() {
        
        for(int x = this.palavra.length()-1 ; x>=0 ; x--){
            this.resultado += palavra.charAt(x);
        }
        if(resultado.equals(palavra)){
            System.out.println("A palavra " + this.palavra + " é um palíndromo");
        } else{
            System.out.println("A palavra " + this.palavra + " NÃO é um palíndromo");
        }
    }

}

Caramba acabei de postar e já encontrei onde estava o problema, só foi eu remover a linha abaixo que a mensagem saiu :smiley:

Se alguém puder explicar com mais detalhes o que ocorreu eu entenderia melhor, quando vi essa linha já sabia que estava errado, já que eu tenho um método para analisar e mostrar o resultado. Eu havia colocado esta linha apenas para testar o meu Scanner, mas só não entendi por que essa mensagem surgiu.

O “scan” é uma variável do tipo Scanner. Se você der uma olhada na classe Scanner do pacote java.util, verá que lá se encontra o método toString(), que é esse:
Quando você chama o System.out.println, ele procura no parâmetro que você passou se tem o método toString() implementado, como ele achou para o Scanner, chamou o método e fez a impressão desses valores para você.

1 curtida