자바 standard API 에는 scanf 와 같은 기능을 제공하는 메소드가 없습니다. printf 는 String.format() 이라는 유사한 메소드가 있는데 scanf 는 없습니다.
사용방법은 fscanf 와 다르지만 파일로 부터 문자열을 읽기 위해서 java.io.StreamTokenizer 또는 java.util.Scanner 를 FileReader 와 함께 사용할 수 있습니다. 하지만 이녀석들은 연속적인 문자열을 토큰으로 분해해주는 역할을 하지 scanf 처럼 특정 format 에서 어떤 값을 읽는 기능을 제공하지는 않습니다.
제 생각에 scanf 처럼 특정 format 에서 어떤 값을 읽기 위해서는 일단 문자열을 읽은 후에 regular expression 을 사용하는 것이 가장 나을 듯 합니다. 예를 들어
String s = "ABC:0.123";
String d = s.replaceAll("ABC:([0-9]+(\\.[0-9]*)?)", "$1");
double d = Double.parseDouble(d);
를 하면 d = 0.123 이 됩니다. 한 줄의 코드로 파일에서 읽은 후 파싱까지 하시려면 이를 응용해서 적당한 클래스를 하나 만드시는 것이 좋을 듯 하구요.
또는 예전부터 JAVA standard API 에 scanf 가 없는 것이 불만인 사람들이 꽤 있었으므로, 아마도 누가 만들어놓은 것이 있을 겁니다. 인터넷에서 검색해보시면 자바로 scanf 를 구현해 놓은 것을 찾을 수 있을 것도 같습니다.
없으면 더 이상하지
없으면 더 이상하지 않겠니?
잘찾아봐
상당히
상당히 삐딱한사람이네.
반말까지하고.
왜 모르면서 아는체 나서시나.
File f = new
File f = new File("C:\\temp.txt");
PrintWriter pw = new PrintWriter(f);
String str = "this is print writing string!\n";
pw.print(str);
pw.close();
자바배운게 한달이고 지금은 배운지 몇달되어서... 잘 모르지만 .. 아마도 이렇게 쓰는게 아닐까요
자바 standard API 에는
자바 standard API 에는 scanf 와 같은 기능을 제공하는 메소드가 없습니다. printf 는 String.format() 이라는 유사한 메소드가 있는데 scanf 는 없습니다.
사용방법은 fscanf 와 다르지만 파일로 부터 문자열을 읽기 위해서 java.io.StreamTokenizer 또는 java.util.Scanner 를 FileReader 와 함께 사용할 수 있습니다. 하지만 이녀석들은 연속적인 문자열을 토큰으로 분해해주는 역할을 하지 scanf 처럼 특정 format 에서 어떤 값을 읽는 기능을 제공하지는 않습니다.
제 생각에 scanf 처럼 특정 format 에서 어떤 값을 읽기 위해서는 일단 문자열을 읽은 후에 regular expression 을 사용하는 것이 가장 나을 듯 합니다. 예를 들어
를 하면 d = 0.123 이 됩니다. 한 줄의 코드로 파일에서 읽은 후 파싱까지 하시려면 이를 응용해서 적당한 클래스를 하나 만드시는 것이 좋을 듯 하구요.
또는 예전부터 JAVA standard API 에 scanf 가 없는 것이 불만인 사람들이 꽤 있었으므로, 아마도 누가 만들어놓은 것이 있을 겁니다. 인터넷에서 검색해보시면 자바로 scanf 를 구현해 놓은 것을 찾을 수 있을 것도 같습니다.
감사합니다^^
Scanner class가 큰 도움이 되네요!
감사합니다.
Java 1.5부터 추가된
Java 1.5부터 추가된 내용인 것으로 알고 있는데.
http://java.sun.com/j2se/1.5.0/docs/api/java/util/Formatter.html#syntax
scanf는 잘 모르겠네용 @_@
-----------------
한글을 사랑합니다.
-----------------
한글을 사랑합니다.
댓글 달기