从头学习Java,遇到一个小小问题,请教各位同学!谢谢!

xadave 2007-10-26 11:57:56
Hi,
再度从头学习Java,遇到一个小小问题,请教各位同学:

一个小练习程序:

public class a0203
{
public static void main(String args[])
{

System.out.println("下列为空白字元(white space)吗?");
System.out.println("'\\u000D' " + Character.isWhitespace('\u000D'));
System.out.println("'\\u0020' " + Character.isWhitespace('\u0020'));
System.out.println("'\\u001A' " + Character.isWhitespace('\u001A'));
System.out.println("'\\u001D' " + Character.isWhitespace('\u001D'));
}
}

javac 编译时,总是提示 \u000D 那行有错:说行结尾不合法。注掉此行,其他行却没问题。

为什么呢?请赐教。谢谢!
...全文
168 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wlzhlj 2007-10-26
  • 打赏
  • 举报
回复
字符串 双引号?
xstom19 2007-10-26
  • 打赏
  • 举报
回复
这种不可见的空白字符是不能直接用在字符串中的,它会直接被解释成为java代码的一部分。
比如:
public static void main(String args[])
{
\u000D\u0020

}
这样的程序是能执行的。
建议去看一下Java Language Specification关于unicode处理的部分
「已注销」 2007-10-26
  • 打赏
  • 举报
回复
后面多了个空格
应该是'\u000D'
而不是'\u000D '
xadave 2007-10-26
  • 打赏
  • 举报
回复
谢谢以上同学的答复。

aniude 和 xstom19 的为正解。我的代码里,实际上没有 空格 或 中文空格 之类的问题。

难道Java 1.2里支持 对不可见的空白字符 用其16进制形式表示?Java 1.5不支持了?
上述的sample code,来自一本讲述Java 1.2的书。要么就是这本书误人子弟?呵呵!

再次感谢所有关注的同学!
aniude 2007-10-26
  • 打赏
  • 举报
回复
http://www.janeg.ca/scjp/lang/charLiteral.html
可以看看这篇文章
!!! Warning !!!
The compiler translates Unicode characters at the beginning of the compile cycle.

Using the Unicode escape characters \u000A for newline and \u000D for return in a String or comment produces a compile-error as they are interpreted, literally, as 'end-of-line'.

Always use the special characters '\n' or '\r'

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧