检查一个字符是整数还是字母

rud*_*010 2 java binary integer file character

我正在使用 Java 修改文件。这就是我想要实现的目标:

  • 如果在读取时检测到 & 符号以及整数,我想删除 & 符号并将整数转换为二进制。
  • 如果在读取时检测到 & 符号以及(随机)单词,我想删除 & 符号并将该单词替换为整数 16,并且如果与 & 符号一起使用不同的字符串,我想将数字1设置为大于整数16。

这是我的意思的一个例子。如果输入的文件包含这些字符串:

&myword
&4
&anotherword
&9
&yetanotherword
&10
&myword
Run Code Online (Sandbox Code Playgroud)

输出应该是:

&0000000000010000 (which is 16 in decimal)
&0000000000000100 (or the number '4' in decimal)
&0000000000010001 (which is 17 in decimal, since 16 is already used, so 16+1=17)
&0000000000000101 (or the number '9' in decimal)
&0000000000010001 (which is 18 in decimal, or 17+1=18)
&0000000000000110 (or the number '10' in decimal)
&0000000000010000 (which is 16 because value of myword = 16)
Run Code Online (Sandbox Code Playgroud)

这是我到目前为止尝试过但尚未成功的方法:

for (i=0; i<anyLines.length; i++) {
            char[] charray = anyLines[i].toCharArray();
            for (int j=0; j<charray.length; j++)
                      if (Character.isDigit(charray[j])) {
                          anyLines[i] = anyLines[i].replace("&","");
                          anyLines[i] = Integer.toBinaryString(Integer.parseInt(anyLines[i]);
                          }
                       else {
                          continue;
                            }
                        if (Character.isLetter(charray[j])) {
                          anyLines[i] = anyLines[i].replace("&","");
                          for (int k=16; j<charray.length; k++) {
                            anyLines[i] = Integer.toBinaryString(Integer.parseInt(k);
                            }

                        }

                     }
                    }
Run Code Online (Sandbox Code Playgroud)

我希望我的表达能力足够好。关于如何完成这项任务有什么建议吗?

dbc*_*ion 5

Character.isLetter() //tests to see if it is a letter
Character.isDigit() //tests the character to
Run Code Online (Sandbox Code Playgroud)