java中啥时候用/n ,啥时候用 \r,我从来没有用过?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中啥时候用/n ,啥时候用 \r,我从来没有用过?相关的知识,希望对你有一定的参考价值。

给我写个小例子看下,谢谢。

1./r是回车符,/n是换行符,两者意义是不一样的。
2.先解释一下回车和换行的来历及概念:
在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打10个字符。但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符。要是在这0.2秒里面,又有新的字符传过来,那么这个字符将丢失。
于是,研制人员想了个办法解决这个问题,就是在每行后面加两个表示结束的字符。一个叫做“回车”,告诉打字机把打印头定位在左边界;另一个叫做“换行”,告诉打字机把纸向下移一行。
这就是“换行”和“回车”的来历,从它们的英语名字上也可以看出一二。
后来,计算机发明了,这两个概念也就被般到了计算机上。基本的概念应该是回车表示回到最前面,换行表示换一行。但是那时,存储器很贵,一些科学家认为在每行结尾加两个字符太浪费了,加一个就可以。于是,就出现了分歧。
3.目前具体情况:
在上述分歧下不同系统采取了不同的实现:Unix系统里,每行结尾只有“<换行>”,即“\n”;Windows系统里面,每行结尾是“<换行><回车 >”,即“\n\r”;Mac系统里,每行结尾是“<回车>”。一个直接后果是,Unix/Mac系统下的文件在Windows里打开 的话,所有文字会变成一行;而Windows里的文件在Unix/Mac下打开的话,在每行的结尾可能会多出一个^M符号。
参考技术A Java中\n和\r的区别如下:
1.\r 的全称----> Carriage Return,中文:回车;---->回到本行的首位;
2.\n 的全称----> New Line, 中文:换行;---->到下一行首位;
使用System.getProperty("line.separator")来获取当前OS的换行符
针对不同的系统:苹果系统Mac\r ,Unix、Linux系统\n ,Windows系统\r\n。
-------java简单程序区分即可看出--------
//环境:win7,Editplus;
class Test2

public static void main(String[] args)

System.out.println("_________________________\n");
System.out.println("Hello World!---->1"+"\n\rabc");
System.out.println("Hello World!---->2"+"\r\nabc");
System.out.println("Hello World!---->3"+"\rabc");
System.out.println("Hello World!---->4"+"\nabc");

System.out.println("_________________________\n");
int i=12345678;
System.out.println(i+"Hello World!---->1"+"\n\rabc");
System.out.println(i+"Hello World!---->2"+"\r\nabc");
System.out.println(i+"Hello World!---->3"+"\rabc");
System.out.println(i+"Hello World!---->4"+"\nabc");

System.out.println("_________________________\n");

String s1="ttt";
String s2=new String("kkk");
System.out.println(s1+"Hello World!---->1"+"\n\rabc");
System.out.println(s1+"Hello World!---->2"+"\r\nabc");
System.out.println(s1+"Hello World!---->3"+"\rabc");
System.out.println(s1+"Hello World!---->4"+"\nabc");

System.out.println("_________________________\n");
System.out.println(s2+"Hello World!---->1"+"\n\rabc");
System.out.println(s2+"Hello World!---->2"+"\r\nabc");
System.out.println(s2+"Hello World!---->3"+"\rabc");
System.out.println(s2+"Hello World!---->4"+"\nabc");


----------编译运行情况-------------------
_________________________

Hello World!---->1
abc
Hello World!---->2
abc
abclo World!---->3
Hello World!---->4
abc
_________________________

12345678Hello World!---->1
abc
12345678Hello World!---->2
abc
abc45678Hello World!---->3
12345678Hello World!---->4
abc
_________________________

tttHello World!---->1
abc
tttHello World!---->2
abc
abcHello World!---->3
tttHello World!---->4
abc
_________________________

kkkHello World!---->1
abc
kkkHello World!---->2
abc
abcHello World!---->3
kkkHello World!---->4
abc
-------------------------------------------
总结:\r\n或\n\r没有区别,\n也等同于:\r\n或\n\r;
\r单独使用,回到本行行首,替换掉对应的字符。
备注:String类的对象在内存中一旦初始化就不能改变,故在上面可以看到,加上\r,abc没有替换String对象,只是排在了最前面。
参考技术B 这个跟操作系统有关
\r Mac
\n Unix/Linux
\r\n Windows

可以用System.getProperty("line.separator")来获取当前操作系统的换行符

你这条小龙也太懒了,都这样了还要例子
public class ABC

public static void main(String[] args)

if(System.getProperty("line.separator").equals("\r\n"))
System.out.println("\\r\\n is for windows");
else if(System.getProperty("line.separator").equals("\r"))
System.out.println("\\r is for Mac");
else if(System.getProperty("line.separator").equals("\n"))
System.out.println("\\n is for Mac");





----------------
\r\n is for windows追问

我写错了,我问的应该是:
什么时候用/n,什么时候用,呵呵呵呵
回答完了,给你分!

追答

是jsp html里面 用的
当你需要强制换行的时候而且是html代码的时候就用
out.println("ssss");

本回答被提问者采纳
参考技术C flyingFish211 强, 又学一招. System.getProperty("line.separator")

请问HTML标签中啥时候用NAME,啥时候用ID,请通俗举例说明。还有JAVASCRIPT中啥时候用THROW语句?

一个大疑惑:ID是交谁处理?NAME是由处理??我只知道ID是客户端元素,NAME是提交表单时才用。

id与name的作用,作为标签的标识符,基本上是一样的.name是老方法,id是在name基础上发明的,后来才有的,"现代化"一点,用的范围广一点. <A..> 中的name原来(刚发明时)就是用于本页揿一下转向过去用的.

除 BASE, HEAD, HTML, META, SCRIPT, STYLE, TITLE 标签外,id 都可用.

name只用于APPLET,SELECT,FORM,FRAME,IFRAME,IMG,A,INPUT,OBJECT,MAP,PARAM,META. (name有时有自己的用途)

table 中 name 无定义, 应当用 id.

有些标签,可以同时有name和id.

在一个HTML网页中,id是唯一的,即只有某一个标签,或某一个块的标识符是这个id.

id 在HTML中的作用:

(1) 用id选择相应的style sheet(风格).
(2) <A ..> 链接的目的地
(3) 脚本语言用它找目的地(找该id的标签)
(4) 作为名字,用于声明某OBJECT element
(5) 作为一个标签或块的区分标致(用于从HTML网页中取出数据放入数据库或把HTML翻译成别的格式,等情况).

(参考HTML 4.0 定义)

JavaScript 异常 使用throw语句抛出异常顾名思义,就是超出常规
js的异常是在运行过程中发生的错误,如果您学过java中的异常,会知道这叫做runtime exception,那么什么是js异常呢?在代码的运行过程中,错误是不可避免的,总的来说,错误发生于两种情况:一是程序内部的逻辑或者语法错误,二是运行环境或者用户输入中不可预知的数据造成的错误。对于前者,就称之为错误(error),可以通过调试程序来解决;而后一种则更多的称之为异常(exception),顾名思义,就是超出常规,没有按程序设计的意愿来输入数据。当然,异常还会有许多种类型。
所以说,异常并不等价于错误,相反,有时还会利用异常来解决一些问题。JavaScript可以捕获一个异常并进行相应的处理,从而避免了浏览器向用户报错。

使用try-catch-finally处理异常
用户可以使用该结构处理可能发生异常的代码,如果发生异常,则由catch捕获并进行处理,其语法如下:
try
//要执行的代码

catch(e)
//处理异常的代码

finally
//无论异常发生与否,都会执行的代码

通过异常处理,可以避免程序停止运行,从而具有了一定的自我修复能力。
在Ajax开发中,利用异常处理的一个典型应用就是创建XMLHttpRequest对象,不同浏览器创建它的方式是不一样的,为了使代码能够跨浏览器运行,就可以利用异常,一种方法不行,再用另一种方法,直到不发生异常为止,例如:
<script language=”JavaScript” type=”text/javascript”>
<!–
var xmlhttp;
try
//尝试用IE浏览器的方式创建XMLHttpRequest对象
xmlhttp=new ActiveXObject(”Microsoft.XMLHTTP”);
catch(e)
try
//尝试用非IE浏览器的方式常见XMLHttpRequest对象
xmlhttp=new XMLHttpRequest();
catch(e)

//–>
</script>
通过这种方式,就可以跨浏览器创建XMLHttpRequest对象。注意,即使不在catch块内进行处理,catch标识及其参数e也是必须写的,否则会产生语法错误,而finnally则不是必须的。

使用throw语句抛出异常

在JavaScript中有其内部的异常机制,在遇到非法操作时能自动抛出异常。实际的开发中,随着程序的复杂,需要能自己实现异常,这可以通过throw语句来实现:
throw value;
其中value就是要抛出的异常变量,它可以是JavaScript中的任何一种类型(相当于自定义异常)。但在JavaScript内部的异常中,异常参数(即catch (e)中的e)是一个名为error的对象,可以通过new Error(message)来创建这个对象,异常的描述被作为error对象的一个属性message,可以由构造函数传入,也可以之后赋值。通过这个异常描述message,可以让程序获取异常的详细信息,从而自动处理。
下面的程序计算两个数据的和,如果参数不是数字,则抛出异常,代码如下:
<script language=”JavaScript” type=”text/javascript”>
<!–
//函数默认要求参数为数字
function sum(a,b)
a=parseInt(a);
b=parseInt(b);
//如果a或b不能转换为数字则抛出一个异常对象
if(isNaN(a) || isNaN(b))
throw new Error(”arguments are not numbers”);

return a+b;


try
//错误的调用
var s=sum(”c”,”d”);
catch(e)
//显示异常的详细信息
alert(e.message);

//–>
</script>
程序中使用字母作为参数传递给sum函数,是错误的,所以函数内抛出了一个异常对象,这个对象被catch语句获取,并使用alert语句显示了其详细信息。
注意:使用new Error(message)创建异常对象只是一种默认的习惯,也是内置异常的实现方式。这不是必需的,完全可以抛出任意数据类型的异常,例如一个整数,来作为异常的描述。只要在程序中抛出异常和捕获异常能匹配即可。

Error对象除了message属性以外,还有一些其他的属性,这些属性因浏览器而异,例如:在IE浏览器中,error对象的属性包括 name、 number、description、message;而在Firefox浏览器中,error对象的属性包括message、fileName、 lineNumber、stack、name。在实际的应用中如果要实现自己的异常,这些属性只要被赋值,都是可用的,其中Firefox浏览器还会自动对stack属性赋值,用于显示异常出现的位置。

JavaScript 内置的7个异常

Error

SyntaxError

TypeError

RangeError

EvalError

ReferenceError

URIError

部分来自baidu

javascript用法:break,continue和return语句
2009-02-05 22:17
break,continue和return这三个语句的用法新手们经常弄混淆,至少在我学习C语言的时候经常把它们的用法给搞错。不过现在好了,我已彻底搞清楚它们之间的用法!!由于最近一直在看javascript,下面简要说一下它们三个在javascript的一些用法

break语句:
break语句会使运行的程序立刻退出包含在最内层的循环或者退出一个switch语句。由于它是用来退出循环或者switch语句,所以只有当它出现在这些语句时,这种形式的break语句才是合法的。

如果一个循环的终止条件非常复杂,那么使用break语句来实现某些条件比用一个循环表达式来表达所有的条件容易得多。

<script type="text/javascript">
for(var i=1;i<=10;i++)
if(i==6) break;
document.write(i);

//输出结果:12345
</script>

continue语句:
continue语句和break语句相似。所不同的是,它不是退出一个循环,而是开始循环的一次新迭代。

continue语句只能用在while语句、do/while语句、for语句、或者for/in语句的循环体内,在其它地方使用都会引起错误!

<script type="text/javascript">
for(var i=1;i<=10;i++)
if(i==6) continue;
document.write(i);

//输出结果:1234578910
</script>

return语句:
return语句就是用于指定函数返回的值。return语句只能出现在函数体内,出现在代码中的其他任何地方都会造成语法错误!
当执行return语句时,即使函数主体中还有其他语句,函数执行也会停止!

参考资料:http://hi.baidu.com/hjzheng/blog/item/61bb7327963349134d088d28.html

参考技术A 楼上说的很对哦,并且id可以在对很多元素下作为唯一标示出现,比如<tr></tr>,当你需要对此行进行一个JS编辑时,就可以直接给他加一个id,但是加不了name;
一般的控件可以加name和id两种标示,并且命名不同,那么你在JS编写的时候,就可以分别根据name和ID来做,这样有时候自己会比较方便
参考技术B ID就相当于身份证的编码,正确的规则只有一个。只能匹配一个
Name就相当于你身份证上的名字,可以跟别人重合。

比如:单选框、复选框 就会用到相同的NAME。
参考技术C id是唯一属性,name是普通属性的。
2个区别不大,都是用来标识元素的。
用js取得时候会有区别 document.getElementById("id");
document.getElementsByName("name");

js中一般不用throw。
参考技术D name 我不怎么用
任意位置<a href="#qan">头部</a>
任意位置<a name="qan">底部</a>
单击底部直接跳转到头部位置

id是接css类的
<style>
#qabackground:#ccc; width:200px; height:200px /*背景颜色为#ccc*/
.ccolor:red
</style>
<div id="qa" class="c">字体是红色的</div>

js同楼上
document.getElementById("dashu");
来获取body中id为dashu的属性
name类似本回答被提问者采纳

以上是关于java中啥时候用/n ,啥时候用 \r,我从来没有用过?的主要内容,如果未能解决你的问题,请参考以下文章

请问HTML标签中啥时候用NAME,啥时候用ID,请通俗举例说明。还有JAVASCRIPT中啥时候用THROW语句?

vue项目开发中啥时候用cookie啥时候用sessionstorage?

SSH项目中啥时候用uuid,啥时候用identity?

C#中啥时候用小驼峰命名“camelCap”,啥时候用下划线命名“button1_Click”?

请问在C程序中啥时候用int main() 啥时候用 void main()。二者是不是可以相互代替?

sql语句中啥时候用单引号啥时候用双引号?如图中的红为啥用双引号?