【问题标题】:Getting loss of precision error while initializing a character array初始化字符数组时出现精度丢失错误
【发布时间】:2015-10-26 02:15:55
【问题描述】:

我正在构建一个程序,我必须逐字扫描文档,解析这些单词以删除非法字符,然后将每个单词分配给哈希映射。为此,我将单词中的每个字母添加到字符数组列表中,然后使用增强的 for 循环将该数组列表转换为数组,然后将该数组转换为字符串。问题是,每当我尝试使用数组列表的大小来初始化字符数组时,它会引发可能的精度损失错误,并且似乎希望我将值作为字符而不是整数输入。如何解决此问题并让我的阵列正常工作?请帮忙!

  while ( in .hasNext()) {
    String input = in .next();
    Scanner characterizer = new Scanner(input);
    characterizer.useDelimiter("");
    int counter = 0;

    ArrayList < Character > placeHolder = new ArrayList < Character > ();

    while (counter < input.length()) {
        char character = characterizer.next().charAt(counter);
        if (character != '(' && character != ')' && character != '.' && character != '-' && character != '$' && character != '?' & character != '!' && character != ';' && character != ':' && character != '"' && character != '&' && character != '#' && character != '*') {
            placeHolder.add(character);
        }
        counter++;
    }
    final int LENGTH = placeHolder.size();
    char[] word = new char[] {
        LENGTH
    };
    //this code will used the enhanced for loop to copy the contents of placeHolder into word and then convert it to a string
  }

【问题讨论】:

    标签: java arrays arraylist


    【解决方案1】:

    您以错误的方式初始化 char 数组。

    char[] word = new char[LENGTH];
    

    花括号代表数组的内容。

    【讨论】:

    • 在示例程序中,word 被初始化为长度为 1 的数组,其唯一元素是 LENGTH,必须将其转换为 char
    • 噢!我知道这是一个愚蠢的错误。感谢您帮助新手!
    猜你喜欢
    • 2011-04-18
    • 1970-01-01
    • 1970-01-01
    • 2020-07-30
    • 2013-10-04
    • 2016-03-03
    • 1970-01-01
    • 2021-05-18
    • 1970-01-01
    相关资源
    最近更新 更多