• [转]Java中的回车换行符/n /r /t


    原文地址1:https://blog.csdn.net/niguang09/article/details/6275040

    ' '是回车,' '是换行,前者使光标到行首,后者使光标下移一格。通常用的Enter是两个加起来。下面转一篇文章。



    回车和换行
    今天,我总算搞清楚“回车”(carriage return)和“换行”(line feed)这两个概念的来历和区别了。
    在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打10个字符。但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符。要是在这0.2秒里面,又有新的字符传过来,那么这个字符将丢失。

    于是,研制人员想了个办法解决这个问题,就是在每行后面加两个表示结束的字符。一个叫做“回车”,告诉打字机把打印头定位在左边界;另一个叫做“换行”,告诉打字机把纸向下移一行。

    这就是“换行”和“回车”的来历,从它们的英语名字上也可以看出一二。

    后来,计算机发明了,这两个概念也就被般到了计算机上。那时,存储器很贵,一些科学家认为在每行结尾加两个字符太浪费了,加一个就可以。于是,就出现了分歧。

    Unix系统里,每行结尾只有“<换行>”,即“ ”;Windows系统里面,每行结尾是“<换行><回车>”,即“ ”;Mac系统里,每行结尾是“<回车>”。一个直接后果是,Unix/Mac系统下的文件在Windows里打开的话,所有文字会变成一行;而Windows里的文件在Unix/Mac下打开的话,在每行的结尾可能会多出一个^M符号。

    c语言编程时(windows系统) 就是return 回到 本行 行首 这就会把这一行以前的输出 覆盖掉
    如:
    int main() {
    cout << "hahaha" << " " << "xixi" ;
    }
    最后只显示 xixi 而 hahaha 被覆盖了
    是回车+换行 把光标 先移到 行首 然后换到下一行 也就是 下一行的行首拉
    int main() {
    cout << "hahaha" << " " << "xixi" ;
    }
    则 显示
    hahaha
      

    一下是自己的总结。

     /t相当于键盘的Tab键,/n换行New Line,/r回车Carriage Return,基本的概念应该是回车表示回到最前面,换行表示换一行。

    操作系统的不同,换行符操也不同:

    /r Mac
    /n Unix/Linux
    /r/n Windows

    java中替换字符以及回车换行

    原文地址:https://blog.csdn.net/dongwujing/article/details/7745015

    1. //第一种方式
    2. import java.util.regex.Pattern;
    3. import java.util.regex.Matcher;
    4.  
    5. ...
    6. // 4 different combinaisons
    7. Pattern CRLF = Pattern.compile("( | | | )");
    8. Matcher m = CRLF.matcher(myString);
    9.  
    10. if (m.find()) {
    11. newString = m.replaceAll("<br>");
    12. }
    13. //第二种方式
    14.  
    15. newString = myString.replaceAll("( | | | )", "<br>");

    测试

    1. import java.util.regex.Matcher;
    2. import java.util.regex.Pattern;
    3.  
    4. public class StringTest {
    5.  
    6. public static String sss(String myString){
    7. String newString=null;
    8. Pattern CRLF = Pattern.compile("( | | | )");
    9. Matcher m = CRLF.matcher(myString);
    10. if (m.find()) {
    11. newString = m.replaceAll("<br>");
    12. }
    13. return newString;
    14. }
    15. /**
    16. * @param args
    17. */
    18. public static void main(String[] args) {
    19. String aaa="sdfsfdsfsdf ,dsfsdfsdf ";
    20. //aaa.replace("s", "x");
    21. String newStr=sss(aaa);
    22. System.out.println(newStr);
    23. }
    24.  
    25. }
      1.      /** 
      2. * 获取当前系统的换行符 
      3. */  
      4. ublic static void lineSeparator() {  
      5. //注意在将流写入文件时,换行应根据操作系统的不同来决定。  
      6. //在程序我们应尽量使用System.getProperty("line.separator")来获取当前系统的换  
      7.                 //行符,而不是写/r/n或/n。  
      8.                 //这样写程序不够灵活  
      9. //当我们在java控制台输出的时候,/r和/n都能达到换行的效果。  
      10. if (System.getProperty("line.separator").equals("/r/n")) {  
      11.     System.out.println("//r//n is for windows");  
      12. else if (System.getProperty("line.separator").equals("/r")) {  
      13.     System.out.println("//r is for Mac");  
      14. else if (System.getProperty("line.separator").equals("/n")) {  
      15.     System.out.println("//n is for Unix/Linux");  
      16. }  
      17.   
      18.               System.out.println("aa/nbb");  
      19. System.out.println("aa/rbb");  
      20. System.out.println("aa/tbb"); 
  • 相关阅读:
    浅析CString内部实现机制
    ...sourceannotations.h(142) : error C3094: “repeatable”: 不允许匿名使用
    非MFC项目使用CString及如何打印
    GetTextExtentPoint32--获取字符串在屏幕上长度
    窄字符与宽字符相关的操作
    如何给图片添加黑色边框
    react native
    礼仪 习俗 文化
    职业 行业 2 博客
    读书 文摘 笔记 2 人生的支柱
  • 原文地址:https://www.cnblogs.com/dirgo/p/9253462.html
Copyright © 2020-2023  润新知