MadOnion
09-03-2006, 18:54
Pessoal tenho aqui uma duvida simples... ja tive a procurar no manual da faculdade mas foi sem sucesso.
Só quero mesmo ler algo que esteja num txt, por exemplo:
O nome.txt tem o meu próprio nome.
O Teste.java tem:
import java.util.Scanner;
public class Teste {
public static void main(String []args) {
Scanner leitor = new Scanner ("nome.txt");
System.out.println("O meu nome e: "+leitor);
}
}
Obviamente o Teste.java e o nome.txt estão situados na mesma pasta.
O resto que dá é o seguinte:
O meu nome e: java.util.Scanner[delimiters=\p{javaWhitespace}+][position=0][matc
h valid=false][need input=false][source closed=false][skipped=false][group separ
ator=\.][decimal separator=\,][positive prefix=][negative prefix=\Q-\E][positive
suffix=][negative suffix=][NaN string=\Q?\E][infinity string=\Q?\E]
Algo está a escapar... mas eu não fui ou não dei a aula de leitura de ficheiros, e sei que o procedimento não é este... foi mais um desenrascanço.
Alguém me consegue safar?
MadOnion
09-03-2006, 19:14
Adicionei a linha:
String nome = leitor.next();
E alterei a S.O.P para:
System.out.println("O meu nome e: "+nome);
[code]
O output agora é:
[code]
O meu nome e: nome
:S
Lostctrl
10-03-2006, 16:45
Boas,
Não uses o Scanner para ler ficheiros com este objectivo, o Scanner permite-te identificar primitivos e trata-los através de regexps. Usa antes isto :
public static void main(String[] args) {
try {
BufferedReader in = new BufferedReader(new FileReader("D:/nome.txt"));
String nome = "";
while ((nome = in.readLine()) != null)
System.out.println("O meu nome e: " + nome);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
O que isto faz é que enquanto não terminar o ficheiro (readLine != null) ele despeja-te as linha(s) para a consola. Se tens a certeza que a 1ª linha é preenchida e que tem o que tu queres, retira a linha do while.
Abraços,
Lostctrl
MadOnion
10-03-2006, 16:49
Obrigado, és sempre tu a safar-me nestas questões de java.
Eu fiz de outra maneira que não é bem parecida mas cá vai.
Excerto do código:
public class Teste {
public void main(String[]args) throws IOException {
Scanner leitor = new Scanner(new File(args[0]));
E depois de compilar... ao correr fiz "java Teste nome.txt".
Também serve.
Mas percebi a tua dica ;)
Lostctrl
10-03-2006, 16:54
Obrigado, és sempre tu a safar-me nestas questões de java.
Eu fiz de outra maneira que não é bem parecida mas cá vai.
Excerto do código:
public class Teste {
public void main(String[]args) throws IOException {
Scanner leitor = new Scanner(new File(args[0]));
E depois de compilar... ao correr fiz "java Teste nome.txt".
Também serve.
Mas percebi a tua dica ;)
Existem imensas formas de abordar e dar a volta à situação :) heheheh
Abraços,
Lostctrl
MadOnion
10-03-2006, 17:24
Exatamente, é a arte do desenrascanço. :-D
MadOnion
11-03-2006, 21:47
boas pessoal, ando eu na interminável luta com o java, desta vez é o sudoku.
Tenho um projecto pra entregar(até ás 00h de hoje 8o ), e tenho aqui algumas duvidas.
Vou ter que fazer duas classes, uma chamada sudoku, e outra chamada RunSudoku onde tem o main.
A questão é: Este programa consiste em verificar se uma determinada solução do sudoku está correcta, se estiver tudo bem... se não estiver ele emite uma mensagem, e mostra o jogo errado.
Na classe sudoku tenho o seguinte:
public class Sudoku2 {
private int[][] matriz;
public boolean linhas(){
for(int i=0; i<8; i++)
for(int j=0; i<8; j++)
if(matriz[i][j] == matriz[i+1][j]);
return false;
}
public boolean colunas(){
for(int i=0; i<8; i++)
for(int j=0; j<8; j++)
if(matriz[i][j] == matriz[i][j+1]);
return false;
}
}
Eu não faço ideia se este pedaço de código está certo, mas se estiver tudo bem.
Gostaria que alguem me indicasse a melhor maneira de verificar as regiões do sudoku, ou seja aqueles 3*3 em que não se pode repetir numeros, já que linhas e colunas mal ou bem estão concluidos.
Se alguem me conseguir safar, agradecia.
Cumps mad.
tambem andas na faculdade de ciencias... mau sitio pra vires expor o teu codigo.
ha aqui muitos alunos da faculdade.
inclusive eu.
era mais inteligente usares as news do DI. digo eu.
cumprimentos.
MadOnion
13-03-2006, 09:40
Eu não pedi o código, pedi uma ajuda, todo o código é diferente a partir daí.
Mas também agora deixa de ter efeito, ja foi entregue e já me desfiz do codigo pra não ter mais dores de cabeça.