gpt4 book ai didi

java - 无法替换字符串中的字母

转载 作者:行者123 更新时间:2023-12-01 06:31:33 25 4
gpt4 key购买 nike

我问了几个关于这个 for 循环的问题:

  String[] book = new String [ISBN_NUM];
bookNum.replaceAll("-","");
if (bookNum.length()!=ISBN_NUM)
throw new ISBNException ("ISBN "+ bookNum + " must be 10 characters");
for (int i=0;i<bookNum.length();i++)
{
if (Character.isDigit(bookNum.charAt(i)))
book[j]=bookNum.charAt(i); //this is the problem right here
j++;
if (book[9].isNotDigit()||
book[9]!="x" ||
book[9]!="X")
throw new ISBNException ("ISBN " + bookNum + " must contain all digits" +
"or 'X' in the last position");
}

这不会编译。我从我问的另一个问题中得到的答案告诉我,发生错误的行是错误的,因为 bookNum.charAt(i) 是一个(不可变的)字符串,并且我无法以这种方式将值放入书籍数组中。我在作业中需要做的是检查 ISBN 编号 (bookNum),看看它是否都是数字,除了最后一位数字可以是“x”(有效的 ISBN)。这是最好的方法吗?如果是这样,我到底做错了什么?如果没有,使用什么方法会更好?

最佳答案

book 的类型为 String[](字符串数组),bookNum.charAt(i) 返回一个 char。您无法从 char 分配 String

改为使用book[j] = String.valueOf(bookNum.charAt(i))

您可能还想更改第一个错误:

throw new ISBNException ("ISBN "+ bookNum + " must be " + ISBN_NUM + " characters");

关于java - 无法替换字符串中的字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5035949/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com