import java.util.Scanner;
public class testing
{
public static void main(String[] args)
{
Scanner stdIn = new Scanner(System.in);
System.out.println("Please enter a string of any length: ");
String convertMe = stdIn.next();
System.out.printf("%s%15s%15s%10s%n","Initial","ASCII<char>","ASCII<int>",
"Hex";
for(int x=0; x<convertMe.length(); x++)
{
int ascii = (int)convertMe.charAt(x);
System.out.printf("%c %30d %13x%n", convertMe.charAt(x),ascii,ascii);
}
System.out.printf("%n");
System.out.println("Thank you for playing!");
}
}
眼下代码输出所有的ASCII值的一列。我试图根据字符是字母还是数字来将该列分成两部分。我一直在玩isDigit,但一直没有得到它的工作。由于它是一个字符串我需要它在我的for循环后修复增量检查是否真正然后在char列输出如果在int列中的错误输出可能会工作最好我只是不明白如何使这项工作仍然很新编码。如何在同一个字符串中为字母和数字创建单独的输出并输出其ASCII值?
编辑1:我忘了描述LOL程序。该程序获取字符串的输入并将字符串打印为char,ascii值和十六进制。如果char是字符列下的char和int下的数字。一个空格也应该读作ASCII和HEX空格。
Edit2:正在玩arraylist,并得到它的工作,但我不认为这是一个可行的选择,因为它会采取字符串字符乱序显示,因为我必须在这里打印在相同的声明我在哪里。
public class JMUnit3Ch12
{
public static void main(String[] args)
{
Scanner stdIn = new Scanner(System.in);
System.out.println("Please enter a string of any length: ");
String convertMe = stdIn.nextLine();
System.out.printf("%s%15s%15s%10s%n","Initial","ASCII<char>", "ASCII<int>", "Hex");
ArrayList<Integer>numbers = new ArrayList<>();
ArrayList<Integer>letters = new ArrayList<>();
for(int x=0; x<convertMe.length(); x++)
{
int ascii = (int)convertMe.charAt(x);
if(ascii<=57 && ascii>=48)
{
numbers.add(ascii);
}
else
{
letters.add(ascii);
}
//System.out.printf("%c %30d %13x%n", convertMe.charAt(x),ascii,ascii);
}
for(int y :numbers)
{
System.out.printf("%c %30d %13x %n",y,y,y);
}
for(int z: letters)
{
System.out.printf("%c %15d %28x %n",z,z,z);
}
//System.out.println(numbers);
System.out.printf("%n");
System.out.println("Thank you for playing!");
}
}
*我一直在玩弄ISDIGIT但一直没能得到它仍然可以工作*:然后张贴你试过的东西,告诉我们你期望它做什么以及它做什么。 –