黑马程序员技术交流社区

标题: 关于文本文件换行符以及其他几个小问题! [打印本页]

作者: 余勇    时间: 2013-3-17 15:06
标题: 关于文本文件换行符以及其他几个小问题!
最近几个小问题,一起问了:
1,这个是张老师面试题里面的一个: 不明白,求解?
代码的不妥之处
int x=1; return x==1?true:false;

2.看了一些JAVASE的小项目,大都是swing 图形界面做的, 关于图形界面,一定要掌握吗?
感觉自学过程中掌握的不是很好,不知道具体要到什么什么程度!

3.任意数字序列“123456”之类,输出它们所有的排列组合
这个题,不用for循环,用迭代的话,也在网上找了例子,都很麻烦,代码没多少,很难理解!
迭代过程分析的我有点小郁闷, 有没有 思路清晰一点的!

4.将一个文件中的内容倒序(不允许用第二个文件)
关于换行符的问题? 没能实现换行?
就是如下代码中,读取转换后,在记事本里面无法换行.
  1. class ReverseFile{
  2.         public void reverseFile(File src) throws Exception{
  3.                 BufferedReader bufr = new BufferedReader(new FileReader(src));                       
  4.                 StringBuilder sb = new StringBuilder();
  5.                 String line = null;
  6.                 while((line=bufr.readLine()) != null){
  7.                         sb.append(line);
  8.                         //sb.append('\n'); //换行符的问题怎么解决?                       
  9.                 }
  10.                 sb = sb.reverse();
  11.                 PrintWriter pw = new PrintWriter(src);
  12.                 pw.println(sb.toString());
  13.                 pw.flush();       
  14.                
  15.                 bufr.close();
  16.                 pw.close();
  17.         }
  18. }
复制代码

作者: 赵晓东    时间: 2013-3-17 15:17
本帖最后由 赵晓东 于 2013-3-17 15:23 编辑

windows 的换行符不是'\n 而是'\r\n"
例:
fw.write("你好\r\n谢谢");


作者: 赵晓东    时间: 2013-3-17 15:26
1、是条件表达式
int x=1;
return x==1?true:false;//意思是 x的值是1吗?如果是,返回true,否则返回false

小弟不才,能力有限
作者: 坚持远方    时间: 2013-3-18 08:09
赵晓东 发表于 2013-3-17 15:26
1、是条件表达式
int x=1;
return x==1?true:false;//意思是 x的值是1吗?如果是,返回true,否则返回fals ...

应该是吧,还没这样用过
作者: 郝强勇    时间: 2013-3-18 14:04
第一个问题:首先说代码语法和逻辑都没问题,只是可以简化,return x==1?true:false是三目运算符,A?B:C如果A为true,则整体运算符返回B,否则返回C。但x==1原本就可以返回boolean值,所以不妥之处就是无需用三目运算,直接这样:int x=1;return x==1;即可。

第二个问题:图形用户界面的知识是主要用来做C/S的,如果不掌握的话不太会影响后面EE的课程,初学者可以大概先了解一下swing的知识。在C#知识体系中,可以用VS直接画窗体在写事件,据说有插件也可用在java的C/S开发中,不过我还没有去研究这个事情。

第三个问题:如果用迭代,楼主指的是Iterator迭代吧,我们看for循环:
            for(A;B;C),执行过程是A--->B--->C--->B--->C--->B--->C--->... ...
                  在看Iterator:
                  A;
                  while(B){
                         C;
                  }
                  循环和迭代的ABC相对应,达到一样的效果啊,但也许和楼主的问题有所出入,楼主可以在追问。

第四个问题:我正在研究着呢,呵呵。
作者: 郝强勇    时间: 2013-3-18 14:05
第一个问题:首先说代码语法和逻辑都没问题,只是可以简化,return x==1?true:false是三目运算符,A?B:C如果A为true,则整体运算符返回B,否则返回C。但x==1原本就可以返回boolean值,所以不妥之处就是无需用三目运算,直接这样:int x=1;return x==1;即可。

第二个问题:图形用户界面的知识是主要用来做C/S的,如果不掌握的话不太会影响后面EE的课程,初学者可以大概先了解一下swing的知识。在C#知识体系中,可以用VS直接画窗体在写事件,据说有插件也可用在java的C/S开发中,不过我还没有去研究这个事情。

第三个问题:如果用迭代,楼主指的是Iterator迭代吧,我们看for循环:
            for(A;B;C),执行过程是A--->B--->C--->B--->C--->B--->C--->... ...
                  在看Iterator:
                  A;
                  while(B){
                         C;
                  }
                  循环和迭代的ABC相对应,达到一样的效果啊,但也许和楼主的问题有所出入,楼主可以在追问。

第四个问题:我正在研究着呢,呵呵。
作者: 余勇    时间: 2013-3-18 14:11
谢谢楼上! 才发现原来我是想问 递归的,很抱歉!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2