What is the logic behind this how it is working?
我读过一些棘手的面试问题,我看到了这个问题,我不明白这背后的逻辑是什么。有人能解释吗?
1 2 3 4 5 6 7 8
| public class Test
{
public static void main (String[] args ) {
for(char c ??h = 0; c ??h < Character. MAX_VALUE; c ??h ++)
if (Character. isJavaIdentifierPart(c ??h ) && !Character. isJavaIdentifierStart(c ??h ))
System. out. printf("%04x <%s>%n", (int) c ??h, "" + c ??h );
}
} |
产量
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| 0000 < >
0001 <>
0002 <>
0003 <>
0004 <>
0005 <>
0006 <>
0007 <>
0008 <>
000e <>
000f <>
0010 <>
0011 <>
0012 <>
0013 <>
0014 <>
0015 <>
0016 <>
0017 <>
....more rows |
号
- 我会先发布一个可编译的示例;这甚至还不是代码。看起来有些东西应该在一根绳子里,但即使那样,也有一些东西丢失了。
- 谢谢回复。这就是它的程序。
- 我建议您检查Java文档中所使用的方法,然后它应该是有意义的。
- @戴夫牛顿,它编译。ideone.com/ip3hwq网站
- 因为这里看不见无法打印的字符。我的观点是,如果不做分析,这个问题是非感性的,而行动党却没有这样做。
- 一点也不掉头,缺少的是OP的尽职调查,至少是IMO。
- @戴维牛顿不会像你这样一眼就看不懂的人。我初学者对发生的事情一无所知。这个问题也由知名人士(彼得·劳里)提出。不幸的是,他没有解释清楚。所以我觉得这不容易。如果不好好回答。不要批评别人什么都不知道
这是:
1
| for(char c ??h = 0; c ??h < Character. MAX_VALUE; c ??h ++) |
与
1
| for(char ch =0; ch < Character. MAX_VALUE; ch ++) |
号
但写的是向后的……所以是正常的for循环