《算法第四版》如何使用命令行输入

《算法第四版》如何使用命令行输入

我最近在学习《算法第四版》,发现其中使用命令行输入文件作为参数的,如何输入文件作为参数是困扰我的一个难题,使用eclipse输入,但是就是不对,可能是我的方法不对,然后我就各种百度,去查找资料,如何使用命令行输入,其实各种各样的答案,五花八门很多都不能解决问题,然后我就综合各种资料和自己的实践,总结出了如何使用使用命令行输入,因为我现在还是在刚刚开始看,等我大致看完了,再来更新命令行输入,毕竟我现在的写的都是比较浅显的知识。
以这段代码为例:

package com.jxust.cn.demo;

import java.io.BufferedReader;
import java.io.IOException;
import edu.princeton.cs.algs4.ST;
import edu.princeton.cs.algs4.StdIn;
import edu.princeton.cs.algs4.StdOut;

public class FrequencyCounter2 {

	public static void main(String[] args) throws IOException {
		int minlen = Integer.parseInt(args[0]);
		ST<String,Integer> st = new ST<String,Integer>();
		while(!StdIn.isEmpty()) {
			String word = StdIn.readString();
			if(word.length() < minlen) continue;
			if(!st.contains(word)) st.put(word, 1);
			else st.put(word, st.get(word)+1);
		}
		
		String max = " ";
		st.put(max, 0);
		for(String word : st.keys()){
			if(st.get(word) > st.get(max))
				max = word;
			
		}
		
		StdOut.println(max+" "+st.get(max));
	}

}

![在这里插入图片描述](https://img-blog.csdnimg.cn/a50c33f
大家忽视报错,因为我是使用命令行运行,哪个报错的代码和我们要测试的代码没有关系,就不处理报错的代码,只要专注于FrequencyCounter2.java就行。
FrequencyCounter2.java这个代码里面,有包名 :
package com.jxust.cn.demo;
所以我们要在src的目录下去运行代码,而不是在FrequencyCounter2.java所在的目录,如下在这里插入图片描述
B编译和运行命令行就有点门道了,小心踩坑,我就踩坑了,如果不是因为踩坑了,我应该早就学会如何使用命令运行,不至于拖到现在学习算法第四版了

首先对代码进行编译
编译有四种方式,这四种方式都是可以的,大家主反斜杠的方向的写法,其次要引入依赖的外部库algs4.jar这是代码需要的,不引入就会报错。

第一种方式
E:\eclipse-workspace\Algorithms\src>javac -cp F:\Algs4\algs4.jar com\jxust\cn\demo\FrequencyCou
nter2.java
第二种方式
E:\eclipse-workspace\Algorithms\src>javac -cp F:\Algs4\algs4.jar com/jxust/cn/demo/FrequencyCou
nter2.java
第三种方式
E:\eclipse-workspace\Algorithms\src>javac -cp F:/Algs4/algs4.jar com/jxust/cn/demo/FrequencyCou
nter2.java
第四种方式
E:\eclipse-workspace\Algorithms\src>javac -cp F:/Algs4/algs4.jar com\jxust\cn\demo\FrequencyCou
nter2.java

其次是运行,这就有点小坑,为什么?
因为它没有四种命令行模式,反斜杠随便写的话,就可能出错,
入下是四种输入模式
在这里插入图片描述
可以看出来只有以下两种是对的

E:\eclipse-workspace\Algorithms\src>java -cp F:\Algs4\algs4.jar; com/jxust/cn/demo/FrequencyCounter2 1 <
tinyTale.txt
it 10

E:\eclipse-workspace\Algorithms\src>java -cp F:/Algs4/algs4.jar; com/jxust/cn/demo/FrequencyCounter2 1 <
tinyTale.txt
it 10

有以下几点需要注意
1:-cp F:/Algs4/algs4.jar后面要加冒号";",其次冒号后面要加一个空格。在编译期间不用加冒号,运行时才要加上冒号
2:注意反写杠的方向,不是任意一种都行,我个人比较推荐使用以下这种方式

在这里插入图片描述
今天就聊到这里,下次等学会了,再来详细说一说哈,看看能不能顺便把eclipse的运行方式也搞懂。希望能够帮到大家。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值