为了账号安全,请及时绑定邮箱和手机立即绑定

Java - 遇到空格进行 ASCII 转换时 Printf 损坏

Java - 遇到空格进行 ASCII 转换时 Printf 损坏

元芳怎么了 2021-12-22 19:26:53
我有一个脚本,它应该采用一个由数字和字母组成的字符串,并将它们分解为ASCII/Hex相应列下的值。它可以完美运行,直到我在字符串中的任何位置放置一个空格。它将正常打印所有内容直到空格,然后中断没有错误。Ex. (works):kdillon76Ex. (does NOT work):kdillon 76在我的 For 循环中,我有一个 If 语句,说明如果字符是数字,则“执行此操作”,然后是一个 Else 语句以涵盖任何“其他”内容。Else 语句不应该能够将空格转换为“32”ASCII 数字吗?非常感谢任何和所有帮助!  import java.util.*; // Load all Utility Classespublic class DKUnit3Ch12 { // Begin Class DKUnit3Ch12    public static void main(String[] args) { // Begin Main        Scanner myScan = new Scanner(System.in); // Initialize the Scanner        String myInput; // Define a new Variable        System.out.print("Please enter a string of any length: "); //Print the text        myInput = myScan.next(); // Define a new Variable with the next user input        System.out.printf("%n%-8s%-16s%-16s%s%n", "Initial", "ASCII(char)", "ASCII(int)", "Hex"); // Print the labels with proper tablature        for(int x = 0; x < myInput.length(); x++) { // Begin For Loop            char myChar = myInput.charAt(x); // Define a new Variable based on position in index            if(Character.isDigit(myChar)) { // Begin If Statement (if the character is a digit)                System.out.printf("%-24s%-16d%02X%n", myChar, (int)myChar, (int)myChar); // Print the items with proper tablature including capitalized Hex            } // End If Statement            else { // Begin Else Statement (if the character is NOT a digit)                System.out.printf("%-8s%-32d%02X%n", myChar, (int)myChar, (int)myChar);  // Print the items with proper tablature including capitalized Hex            } // End Else Statement        } // End For Loop        System.out.print("\nThank you for playing!"); // Print the text        myScan.close(); // Close the Scanner    } // End Main} // End Class DKUnit3Ch12
查看完整描述

2 回答

?
holdtom

TA贡献1805条经验 获得超10个赞

文档

A Scanner breaks its input into tokens using a delimiter pattern, which by default matches whitespace.


查看完整回答
反对 回复 2021-12-22
?
RISEBY

TA贡献1856条经验 获得超5个赞

替换myScan.next()myScan.nextLine()


查看完整回答
反对 回复 2021-12-22
  • 2 回答
  • 0 关注
  • 294 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号