【问题标题】:What is the logic behind this how it is working? [duplicate]这背后的逻辑是什么? [复制]
【发布时间】:2017-10-17 02:55:16
【问题描述】:

我已经阅读了一些棘手的面试问题,我无法理解这背后的逻辑。谁能解释一下?

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);
    }
}

输出

0000 < >
0001 <>
0002 <>
0003 <>
0004 <>
0005 <>
0006 <>
0007 <>
0008 <>
000e <>
000f <>
0010 <>
0011 <>
0012 <>
0013 <>
0014 <>
0015 <>
0016 <>
0017 <>
....more rows

【问题讨论】:

  • 我先发布一个可编译的例子;这甚至还不是代码。看起来应该在字符串中,但即便如此,还是缺少了一些东西。
  • 感谢您的回复。这就是它的程序。
  • @DaveNewton 它编译。 ideone.com/iP3HWq
  • 因为不可打印的字符在这里是不可见的。我的观点是,如果不进行分析,这个问题是没有意义的,而 OP 并没有这样做。
  • 根本没有掉头——缺少的是 OP 方面的尽职调查,至少是 IMO。

标签: java deobfuscation


【解决方案1】:

这个:

for(char c‮h = 0; c‮h < Character.MAX_VALUE; c‮h++)

相同
for(char ch=0; ch< Character.MAX_VALUE; ch++) 

但是是倒着写的......所以是一个正常的for循环

【讨论】:

    猜你喜欢
    • 2021-01-14
    • 2014-07-15
    • 1970-01-01
    • 2020-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多