Hola MrClassic
otra cosa que note es que en el metodo static se tienen que declarar las variables dentro del metodo y no de manera global en cabezera, al igual que cambiar el metodo capturaStr de private a public para que pueda ser leido por el main();
Todo método puede declarar las variables que va a utilizar. También se pueden declarar en el encabezado de la clase (como campos o atributos de la clase). Pero si los va a utilizar un método estático, deben declararse estáticos también esos campos/atributos.
Es nuestra elección si deben ser variables internas y exclusivas del método, o deben ser visibles a toda la clase.
Tu clase funcionará igual si el método capturaStr es private. Otra cosa, es que tu quieras que sea visible porque lo vas a llamar desde otra clase. Como private solo lo pueden usar los métodos de la propia clase CapturaDatos.
-----
Tu ejercicio incorpora la gestión de entradas vacías, Bien.
Pero hay dos cosas a mejorar:
1º
Cuando ejecutas el método lee() de la clase CapturaDatos, tienes estas dos instrucciones:
a) String texto = capturaStr();
b) texto = capturaStr();
La primera captura de texto -a)- la descartas (no la gestionas) y la segunda, la -b)- sí la gestionas.
No sé que propósito tiene pedir una entrada que no se gestiona. Tu petición de texto a ingresar, ahora funciona así:
Primero un ENTER con o sin texto previo, luego el texto a gestionar y al final un ENTER
Si quieres que tus entradas de texto tengan esta estructura, deberías anunciarlo para no dar lugar a equívocos.
A mi parecer la instrucción a) estaría bien inicializarla de otra manera como:
a) String texto = "";
a) String texto = " ";
a) String texto = "Texto temporal";
Es igual el texto que pongas, pues será reemplazado por la instrucción b), que pide una entrada de texto por teclado para gestionarla después.
2º
En el método main tienes una variable:
entradaResultado
que no utilizas para nada, se habrá quedado de otra línea de código.
Y las siguientes instrucciones:
CapturaDatos entrada;
entrada = new CapturaDatos();
entradaDatos = entrada.lee();
pueden sustituirse las tres, por la siguiente:
entradaDatos = CapturaDatos.lee();
Esto --CapturaDatos.lee();-- se puede hacer porque el método lee() es estático.
Si comprendes lo expuesto, no hace falta que envíes de nuevo el ejercicio, excepto que me haya dejado algo sin responder.
Saludos