Duvidas Java

arkannis

Power Member
Como substituir \ por \\?
Basicamente o que quero fazer é que o programa guarde alguma coisa num ficheiro, ficheiro esse que é previamente apontado pelo utilizador.

Algo deste género: (o codigo ta incompleto)

Código:
out.print("O caminho do file: ");
String filepath = inScan.nextLine();

PrintStream diskWrite = new PrintStream(new File(filepath));

diskWrite.println("Stuff");

Isto funciona perfeitamente, mas a não ser que o utilizador do programa perceba da coisa, ele nunca vai escrever o caminho com \\ em vez de \, que é necessário em java para a coisa funcionar. (Ex: vai escrever C:\folder\ola.txt enquanto deveria escrever C:\\folder\\ola.txt)

Como é que eu posso dar a volta a isto, de modo a que o programa aceite os caminhos escritos só com uma \ ?

Obrigado, espero terem percebido bem a questao :P expliquei o melhor que pude lol.
 
Última edição:
Código:
....
String scan = inScan.nextLine();
String path = scan.replace("\\", "\\\\");
		
System.out.println(scan);
System.out.println(path);
...
 
Código:
....
String scan = inScan.nextLine();
String path = scan.replace("\\", "\\\\");
		
System.out.println(scan);
System.out.println(path);
...

Pronto, fez o que eu quis, obrigado ;)

Mas eu gosto de perceber o código que escrevo :P
Se fosse replace("\", "\\") eu chegava lá sozinho :007: , mas assim não compreendo o porquê de pôr essas barras todas.

E a solução do pure_water ainda é chinês para mim :-D
 
penso que seja porque por exemplo "\n" é mudança de linha... logo "\" nunca pode estar sozinha pois é um caracter especial

logo se keres dizer \ tens k por "\\"

analogamente se keres por \\ tem k ser "\\\\"
 
Pronto, fez o que eu quis, obrigado ;)

Mas eu gosto de perceber o código que escrevo :P
Se fosse replace("\", "\\") eu chegava lá sozinho :007: , mas assim não compreendo o porquê de pôr essas barras todas.

E a solução do pure_water ainda é chinês para mim :-D

sorry lol eu tinha lido mal, pensei que querias apenas C:\\folder\ola.txt em vez do C:\\folder\\ola.txt lol

é do sono -_-
 
Pronto, fez o que eu quis, obrigado ;)

Mas eu gosto de perceber o código que escrevo :P
Se fosse replace("\", "\\") eu chegava lá sozinho :007: , mas assim não compreendo o porquê de pôr essas barras todas.

E a solução do pure_water ainda é chinês para mim :-D

O character \ é representado internamente por \\, por ser um caracter especial.
Ex:
Se quiseres representar um tab, \t
Uma barra, \\
Se quiseres meter aspas no meio de texto, \"

PS: Ups, ja se adiantaram a mim :-)
 
Isso e' para um programa com GUI?

Se sim, porque nao pores um JFileChooser?

Assim ja nao tens o problema das \ \\\ \\\\\\\\ \\ \\\ \\\ :p
 
Isso e' para um programa com GUI?

Se sim, porque nao pores um JFileChooser?

Assim ja nao tens o problema das \ \\\ \\\\\\\\ \\ \\\ \\\ :p

Não não é para um programa com GUI.

Mas já que falas nisso... é muito avançado fazer um programa com GUI em java? Aconselham algum livro ou site em especial que ensine a dar os primeiros toques nessa área?
 
O character \ é representado internamente por \\, por ser um caracter especial.
Ex:
Se quiseres representar um tab, \t
Uma barra, \\
Se quiseres meter aspas no meio de texto, \"

PS: Ups, ja se adiantaram a mim :-)


São as chamadas sequencias de escape... aõ usares uma backslash (barra inclinada para traz) tas a indicar ao Java que ali anda 1 caracter de escape. Por coincidencia o \\ é 1 caracter de escape que significa uma backslash (\)

A explicação está aqui.
 
O NetBeans tem uma ferramente de 'drag and drop' para fazer GUI's... experimenta!
O que torna especialmente divertido o trabalho de quem tem de pegar em projectos começados por outros "programadores" e depois tem de andar a decifrar qual é o JPanel851 e o JDialog463..
 
Mas e iniciar nessa coisa da GUI :P sem ser com o drag and drop do NetBeans?
É facil e há livros e afins para aprender ou é uma coisa do outro mundo (certamente que nao é mas pronto :P )?

É que eu nao tenho nenhuma deadline para fazer o programa X. Ando só mesmo a aprender umas coisas e se há coisa que eu gosto é compreender o que estou a fazer.
 
O que torna especialmente divertido o trabalho de quem tem de pegar em projectos começados por outros "programadores" e depois tem de andar a decifrar qual é o JPanel851 e o JDialog463..
Dass...isso é o que dá nao chamar as coisas pelos nomes...


Mas e iniciar nessa coisa da GUI :P sem ser com o drag and drop do NetBeans?
É facil e há livros e afins para aprender ou é uma coisa do outro mundo (certamente que nao é mas pronto :P )?

É que eu nao tenho nenhuma deadline para fazer o programa X. Ando só mesmo a aprender umas coisas e se há coisa que eu gosto é compreender o que estou a fazer.
Começa poir aqui:
http://java.sun.com/docs/books/tutorial/uiswing/
e neste tens montes de exemplos
http://www.exampledepot.com/
 
O que torna especialmente divertido o trabalho de quem tem de pegar em projectos começados por outros "programadores" e depois tem de andar a decifrar qual é o JPanel851 e o JDialog463..

A ideia do Matisse (GUI Builder do Netbeans) é facilitar a vida do programador.
Tipicamente, o código gerado é manipulado somente pelo GUI Builder.

Citando o Scott Violet (chief architect do JFC/Swing):

I honestly don't recommend hand coding UI creation or layout, it's painful, error prone, and a maintenance burden. Use a builder. Of course I recommend Matisse ...

Mas e iniciar nessa coisa da GUI :P sem ser com o drag and drop do NetBeans?
É facil e há livros e afins para aprender ou é uma coisa do outro mundo (certamente que nao é mas pronto :P )?

É que eu nao tenho nenhuma deadline para fazer o programa X. Ando só mesmo a aprender umas coisas e se há coisa que eu gosto é compreender o que estou a fazer.

Para além dos sites que o mcog_blaster referiu, recomendo fortemente dares uma vista de olhos nas seguintes entradas do blog do Scott Violet, que se debruçam sobre o desenvolvimento de uma aplicação Java (com GUI) seguindo a abordagem MVC:

http://weblogs.java.net/blog/zixle/archive/2006/01/architecting_ap.html
http://weblogs.java.net/blog/zixle/archive/2006/01/architecting_ap_1.html
http://weblogs.java.net/blog/zixle/archive/2006/03/architecting_ap_2.html

Aproveito também, para deixar um link para uma animação flash sobre o GridBagLayout, também conhecido por GridBugLayout: http://madbean.com/anim/totallygridbag.

: )
 
O que torna especialmente divertido o trabalho de quem tem de pegar em projectos começados por outros "programadores" e depois tem de andar a decifrar qual é o JPanel851 e o JDialog463..

Eu tambem nao gosto, e nem uso...
Mas se ele nao percebe nada de GUIs... :p
 
A ideia do Matisse é facilitar a vida do programador individual de pequenos projectos. E para essa funcionalidade, é bastante aceitável.
O problema é quando começa a haver pessoal que o utiliza para projectos de maior dimensão sem pensar que a pessoa que vai receber o código a seguir vai ter de andar a perder dias para perceber a estrutura do programa. Já me aconteceu, e não desejo a ninguém.
 
Desculpem lá, mas quer seja usado para pequenos, medios ou grandes projectos, nao ha razao nenhuma para se deixar os componentes com os nomes que o Matisse aplica.

Right Click em cima do componente->Change Variable Name..., nao custa muito e nao leva muito tempo.
 
Compreendo a tua situação, mas o problema não é só do Matisse. É também dos programadores que não usam MVC e, consequentemente, têm grande parte
da lógica de negócio nas componentes visuais da aplicação.
Outro dos problemas é o nome que é dado às variáveis, mas este pode ser facilmente resolvido atribuindo nomes coerentes às componentes visuais, quando estas são criadas.
 
Back
Topo