【问题标题】:I have to write a for loop to print the ASCII values of chars which are in an array我必须编写一个 for 循环来打印数组中字符的 ASCII 值
【发布时间】:2021-09-29 17:51:11
【问题描述】:

这是我目前所拥有的。我不确定如何在 ascii 中打印每个字符的单个值,而不会在每一行上重复这些值。任何帮助将不胜感激。

创建一个 for 循环以打印出与 EACH 关联的所有 ASCII 值
城镇名称或宠物名称的字符(例如,R = 125、a = 97 等)

import java.util.Arrays;

public class Lab1Part2{

    public static void main (String[] args){

    char B = 'B';
    char l = 'l';
    char a = 'a';
    char n  ='n';
    char h = 'h';
    int ascii = B;

        //create array
        char[] JavaCharArray = new char[6];
        JavaCharArray[0] = 'B';
        JavaCharArray[1] = 'l';
        JavaCharArray[2] = 'a';
        JavaCharArray[3] = 'n';
        JavaCharArray[4] = 'c';
        JavaCharArray[5] = 'h';

        //print array
        for(int i=0;i<JavaCharArray.length;i++){
            System.out.println(JavaCharArray[i] + " = " + ascii);
             }



         }
        }

【问题讨论】:

  • 在 Java 命名约定中,JavaCharArray 应该是 javaCharArray
  • 你能解释一下你为什么写R = 125吗? R 的 ASCII 值是 82...

标签: java loops for-loop ascii


【解决方案1】:

Java 中的char 类型是遗留的,本质上是被破坏的。作为16-bit 值,它无法代表大多数字符。

代码点

相反,学习使用code point 整数来处理单个字符。

int[] codePoints = "Blanch?".codePoints().toArray() ;
for( int codePoint : codePoints ) 
{
    System.out.println( "character: " + Character.toString( codePoint ) + " = code point: " + codePoint ) ;
}

看到这个code run live at IdeOne.com


character: B = code point: 66
character: l = code point: 108
character: a = code point: 97
character: n = code point: 110
character: c = code point: 99
character: h = code point: 104
character: ? = code point: 128567

您会在StringCharacterStringBuilder 等各种类周围找到与“codePoint”相关的方法。另见:The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)

【讨论】:

    【解决方案2】:

    每次进入循环(迭代)都需要计算“ascii”。 char 可以自动转换为 int

    //print array
    for(int i=0; i<JavaCharArray.length; i++){
        ascii =  JavaCharArray[i];
        System.out.println( JavaCharArray[i] + " = " + ascii);
    }
    

    顺便说一句:您在开始时声明了一些 char 变量,但从不使用它们。例如,您可能想做JavaCharArray[0] = B; 而不是JavaCharArray[0] = 'B';

    【讨论】:

      【解决方案3】:

      您需要将字符转换为int

      public static void main(String[] args) {
      
              //create array
              char[] JavaCharArray = new char[6];
              JavaCharArray[0] = 'B';
              JavaCharArray[1] = 'l';
              JavaCharArray[2] = 'a';
              JavaCharArray[3] = 'n';
              JavaCharArray[4] = 'c';
              JavaCharArray[5] = 'h';
      
              //print array
              System.out.print("(");
              for (int i = 0; i < JavaCharArray.length; i++) {
                  System.out.print(JavaCharArray[i] + " = " + (int) JavaCharArray[i]+ ", ");
              }
              System.out.print(")");
      
      
          }
      

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-25
      • 2019-02-22
      • 2017-04-22
      • 1970-01-01
      • 1970-01-01
      • 2015-01-25
      • 2014-02-02
      相关资源
      最近更新 更多