我想要做的是读取.java文件,并选出所有标识符并将它们存储在列表中.我的问题是.split()方法.如果按原样运行此代码,您将获得ArrayOutOfBounds,但是如果您从"."更改分隔符.除此之外,代码有效.但是我需要用"."解析的行.那么我还有另一种方法可以做到这一点吗?
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.*;
public class MyHash {
private static String[] reserved = new String[100];
private static List list = new LinkedList();
private static List list2 = new LinkedList();
public static void main (String args[]){
Hashtable hashtable = new Hashtable(997);
makeReserved();
readFile();
String line;
ListIterator itr = list.listIterator();
int listIndex = 0;
while (listIndex < list.size()) {
if (itr.hasNext()){
line = itr.next().toString();
//PROBLEM IS HERE!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
String[] words = line.split("."); //CHANGE THIS AND IT …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Horner的规则将单词转换为整数.我理解它是如何工作的,如果这个词很长,它可能会导致溢出.我的最终目标是在散列函数h(x)= x mod tableSize中使用转换后的整数.我的书建议,由于溢出,你可以"在计算Horner规则中的每个带括号的表达式之后应用mod运算符." 我并不完全明白这是什么意思.说表达式如下:
((14*32 + 15)*32 + 20)*32 + 5
我是否在每个带括号的表达式后使用mod tableSize并将它们一起添加?这个散列函数和Horner规则的例子会是什么样子?