小编Kri*_*ian的帖子

Java - 麻烦读取txt.file

我已经创建了一个用Java读取文件的方法.有问题的文件包含一系列具有以下格式的书籍:lastname | firstname | title.但是,当我尝试使用该方法时,我收到一条错误消息.我的方法如下:

private final static char END_SIGN = '|';

void readBookFile(String readFile) {
        try {
            FileReader textFileReader = new FileReader(readFile);
            BufferedReader textReader = new BufferedReader(textFileReader);

            int numberOfBooks = Integer.parseInt(textReader.readLine());

            for (int i = 0; i < numberOfBooks; i++) {
                String post = textReader.readLine();

                int index1 = post.indexOf(END_SIGN);
                int index2 = post.indexOf(END_SIGN, index1 + 1);

                String lastname = post.substring(0, index1);
                String firstname = post.substring(index1 + 1, index2);
                String title = post.substring(index2 + 1);

                Book book = new Book(lastname, …
Run Code Online (Sandbox Code Playgroud)

java text-files

1
推荐指数
1
解决办法
207
查看次数

MatLab - 变量精度算术

我有一个关于vpa可用于评估MatLab中符号表达式的命令的简短问题.

我的教科书说明如下:

"使用诸如sqrt数字之类的函数时需要小心,默认情况下会产生双精度浮点数.您需要将此类输入vpa作为符号字符串传递给正确的评估:vpa('sqrt(5)/pi')."

我不太明白这里的行话.为什么对于大多数输入我得到确切同样的答案我是否键入vpa(input)vpa('input'),而不是平方根?例如,如果我输入vpa(sin(pi/4))或者vpa('sin(pi/4)'),我得到完全相同的答案,但如果我输入上面给出的问题vpa(sqrt(5)/pi),我得到的答案与我输入时的答案相同vpa('sqrt(5)/pi').

如果有人能够比我上面的书更详细地解释这一点,我将非常感激!

matlab numbers arbitrary-precision

1
推荐指数
2
解决办法
4816
查看次数

MatLab - Horner的算法

我在将Horner算法的伪代码转换为MatLab中的正确代码时遇到了一些麻烦.我认为我的困惑源于这样一个事实:代码假定第一个向量条目可以用0引用,而在MatLab中,这必须是1.我试图相应地修改我的代码,但是我没有得到它工作正常.pseducode如下:

input n, (a_i, : 0 ? i ? n), z_0
   for k = 0 to n-1 do
      for j = n-1 to k step -1 do
          a_j = a_j + z_0*a_(j+1)
      end do
end do
output (a_i: 0 ? i ? n)
Run Code Online (Sandbox Code Playgroud)

这是我在MatLab中写这个的尝试,其中a是一个表示多项式系数的输入向量:

function x = horner(a,z_0)
n = length(a);
for k = 1:n-1
    for j = n-1:-1:k
        a(j) = a(j) + (z_0)*a(j+1);
    end
end
x = a;
Run Code Online (Sandbox Code Playgroud)

我在向量上尝试了这个,a = [1 -4 7 -5 -2]它表示多项式中的系数.我也定了 …

matlab polynomial-math

1
推荐指数
1
解决办法
2万
查看次数

检查布尔数组中的值(Java)

我遇到以下问题时遇到轻微困难.

我初始化了一个名为numberArray的布尔数组,其中包含31个索引.用户应该在1到30之间输入5位数,并且每次输入数字时,程序应该将正确的索引设置为true.例如,如果我输入5则:

numberArray [5] = true;

但是,如果用户第二次输入值5,则应该向用户发出已经输入该号码的消息,因此用户必须选择不同的值.我试图创建一个循环如下:

public void enterArrayValues() {
    for(int i = 1; i < 6; i++) {
        System.out.print("Give " + i + ". number: ");
        int enteredNumber = input.nextInt();
        while (numberArray[enteredNumber] = true) {
            System.out.println("This number has already been chosen.");
            System.out.print("Give " + i + ". number again: ");
            enteredNumber = input.nextInt();
        }
        numberArray[enteredNumber] = true;
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是,当我运行程序时,无论我输入什么,我都会自动收到消息"已经选择了数字".即使是我第一次输入数字.我不懂.默认情况下,布尔数组中的所有值都不是false吗?

如果有人能帮助我,我将不胜感激!

java arrays boolean

0
推荐指数
1
解决办法
6016
查看次数

的StringIndexOutOfBoundsException

我在使Java方法正常工作方面遇到了一些问题.在程序中,我创建了一个由不同长度的许多不同单词组成的数组.我正在处理的方法应该读取字长,字母和位置的用户输入,然后Java将打印出与这三个参数匹配的任何单词(例如,如果用户键入字长4,字母A和位置2,并且将打印出包含位置2处字母A的长度为4的单词.

无论如何,我创建的方法如下所示:

public static void inputMethod(int length, char letter, int position){
    for (int index = 0; index < wordTable.length; index++) {
        if (length == wordTable[index].length() && letter == wordTable[index].charAt(position) )
            System.out.println(wordTable[index]); }
Run Code Online (Sandbox Code Playgroud)

此方法适用于某些输入,但对于其他输入,我收到一条错误消息,如下所示:

Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 5
at java.lang.String.charAt(Unknown Source)
at Wordarray.inputMethod(Wordarray.java:153)
at Wordarray.main(Wordarray.java:61)
Run Code Online (Sandbox Code Playgroud)

如果有人能向我解释我如何解决这个问题,我将不胜感激!就像我说的那样,我只收到某些输入信息.对于其他输入,程序就像它应该的那样工作.

java

-1
推荐指数
1
解决办法
429
查看次数