在搭建之初,我是想不到会出现如此之多的问题。我看了网上的大部分教程,都是基于Eclipse搭建的,还没有使用IDEA搭建的教程。我相信许多读者跟我一样,在学习Java的时候没有使用过命令行编译的形式去运行Java代码,直接使用Eclipse工具去进行开发的,因此,当看到书中
% java BinarySerach xxx.txt < xxx.txt
的时候,不免有点不知所措。笔者现在使用的IDE是IDEA,因此是想要在IDEA下搭建环境,好了废话不多说了,开始吧。
概述
环境的搭建分以下几个步骤:
- Java 运行环境的搭建
- IDEA 的安装与破解
- 《算法》 运行库的下载与配置
- IDEA 工程的创建以及在IDEA中使用命令行
前两个步骤就不写了,网上的教程一大把。
《算法》 运行库的下载与配置
-
首先,我们需要下载作者提供的运行库,下载地址:
点我下载
,
下载红色框框的内容
我们需要下载两个内容,一个是库,一个是测试的数据。库是algs4.jar,数据是algs4-data.zip。
-
在C盘建立目录
C:\Program Files\algs4
将 algs4.jar 放入其中,如下所示:
algs4.jar的存放位置
ps:这里你可以放在任何你想要放的地方,笔者只是习惯放在C盘而已。
-
在CLASSPATH环境变量中,添加值
C:\Program Files\algs4\algs4.jar
(就是刚刚存放algs4.jar的路径),如下所示:
环境变量的设置
网上说,要加个 分号 ,具体我也没去深究,就这样吧。
这样下来,就完成了库的配置了。还有一个测试数据的使用,在下一节。
IDEA 工程的创建以及在IDEA中使用命令
- 创建一个HelloWorld工程
enter description here
选择你的JDK,我使用的是1.6。
- 为项目添加jar包
Project Structure
添加jar包
- 解压测试数据到src目录下:
解压测试数据到src目录下
- 编写测试代码(1.3 节里的代码)
package Test;
public class FixedCapacityStackOfStrings {
private String[] stack;
private int N;
FixedCapacityStackOfStrings(int cap){
stack = new String[cap];
}
public String pop(){
return stack[--N];
}
public boolean isEmpty(){
return N==0;
}
public int size(){
return N;
}
public void push(String s){
stack[N++] = s;
}
}
package Test;
import edu.princeton.cs.algs4.StdIn;
import edu.princeton.cs.algs4.StdOut;
public class FixedCapacityStackOfStringTest {
public static void main(String[] args){
FixedCapacityStackOfStrings s = new FixedCapacityStackOfStrings(100);
while (!StdIn.isEmpty()){
String item = StdIn.readString();
if(!item.equals("-")){
s.push(item);
}else if(!s.isEmpty()){
StdOut.print(s.pop() + " ");
}
}
StdOut.println("("+s.size()+" left"+")");
}
}
测试结果
以上,就好了。