Home > Blockchain >  Print ASCII question, asking to print all ASCII codes from 33 to 126
Print ASCII question, asking to print all ASCII codes from 33 to 126

Time:12-06

I am supposed to implement the method printAscii so that it uses a while loop to print the table of characters that are equivalent to the ASCII codes 33 to 126 What happens when if I were to cast an int value to char?

Here is an example exucation of a full solution

Example execution:

33 !

34 "

35 #

36 $

37 %

38 &

. . .

124 |

125 }

126 ~

Ive been racking my head on getting this done for a while and havent gone very far

I can for example design something that returns the value of a given number, but not printing the results in a while loop as is being asked

public class PrintAsciiValueExample1 {
    public static void main(String[] args) {
        // character whose ASCII value to be found  
        char ch1 = 'a';
        char ch2 = 'b';
        // variable that stores the integer value of the character  
        int asciivalue1 = ch1;
        int asciivalue2 = ch2;
        System.out.println("The ASCII value of "   ch1   " is: "   asciivalue1);
        System.out.println("The ASCII value of "   ch2   " is: "   asciivalue2);
    }
}

CodePudding user response:

maybe this is what you want:

public class Test {
    public static void main(String[] args) {
        
        for (int i=33; i<=126; i =1)
        {
            char c = (char)i;
            System.out.println(i   " --> "   c);
        }
    }
}

CodePudding user response:

You can cast int to char without any side effect if int value within char range (from 0 up to 65 535) It means you can use smth like this:

public class Test {

    public static void main(String[] args) {
        int i = 33;
        while (i < 127) {
            System.out.println("char value is "   ((char) i));
            i  ;
        }
    }
}

CodePudding user response:

For the output you need (plus a bit of digit alignment)

for(int i = 33;i <= 126;i  ) {  
   System.out.printf("= %c%n", i, (char)i);
}

CodePudding user response:

If you have a char variable, all you need is a cast to int in order to print its ascii value, as in:

char a = 'A'; 
System.out.println((int) a);

CodePudding user response:

Not sure this satisfies your requirements but a simple approach is as follows:

    char c = '!';
    while (c <= '~') {
       System.out.println((int)c " " c);
       c  ;
    }

This assumes the unicode range (which a char is based on) is consistent with ASCII which may or may not be true (I believe it is but codepoints are not my area of expertise).

You could use this as well to build a table - if you really need a table per requirements.

And prints

33 !
34 "
35 #
36 $
37 %
38 &
39 '
40 (
41 )
42 *
43  
44 ,
45 -
46 .
47 /
48 0
49 1
50 2
51 3
52 4
53 5
54 6
55 7
56 8
57 9
58 :
59 ;
60 <
61 =
62 >
63 ?
64 @
65 A
66 B
67 C
68 D
69 E
70 F
71 G
72 H
73 I
74 J
75 K
76 L
77 M
78 N
79 O
80 P
81 Q
82 R
83 S
84 T
85 U
86 V
87 W
88 X
89 Y
90 Z
91 [
92 \
93 ]
94 ^
95 _
96 `
97 a
98 b
99 c
100 d
101 e
102 f
103 g
104 h
105 i
106 j
107 k
108 l
109 m
110 n
111 o
112 p
113 q
114 r
115 s
116 t
117 u
118 v
119 w
120 x
121 y
122 z
123 {
124 |
125 }
126 ~
  • Related