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但一直沒能得到它仍然可以工作*:然後張貼你試過的東西,告訴我們你期望它做什麼以及它做什麼。 –