请输入代码需求:
请解析config.txt,文件格式包括段落名称、字段名称和字段值。段落名称的值为:"segment:"右边的字符串,在一个文件中不会有重复的段落名称;字段的名称为"="左边的字符串,字段的值为"="右边的字符串。例如:ipconfig是段落,ip是字段名称,字段值是"192.168.0.1",文件中以#起始的行为注释行,需要跳过,不做解析。
要求:
文件名称、段落名称、字段名称需要作为最终执行程序的命令行参数输入,程序返回字段值,输出到屏幕;
文件行中可能有多余的空白(空格或者制表符),比如等号前、等号后、前导空白符等,需要过滤这些空白符,只输出字段值;
需要注意:要判断是否是注释行,如果是注释行则跳过不做处理;
需要注意:要判断文件中是否有空白行,如果有空白行则跳过不做处理;
需要注意:段落名称不可能重复,但是,不同的段落中可能存在相同的字段名称;
需要注意:如果出现非法的命令行输入参数,需要有明确并恰当的提示;
环境提示:
linux操作系统默认安装选项包括了C开发环境,命令行可以直接编译;
windows操作系统的C程序开发可以使用VC等IDE环境编写。
java和操作系统无关,建议安装JDK后,使用文本编辑器编辑程序(如notepad、UE、vi等),在命令提示符下直接使用javac命令编译成class文件,使用java命令执行程序。
示例(java程序):
输入:javac GetConfig.java #进行编译;
java GetConfig config.txt jdbcconfig username #命令行执行程序
#三个参数:
1、文件名称
2、段落名称
3、字段名称
#本程序实现:根据段落名称和字段名称从指定的文件中取值。
输出:zhangsan #输出结果
这是txt文档内容
# net.conf
# 2009/12/20
#ipconfig
segment:ipconfig
ip= 192.168.0.1
port=81
timeout=600000
#idbcconfig
segment:jdbcconfig
ip = 192.168.0.2
port=8080
username=zhangsan
password=000000
#ftpconfig
segment:ftpconfig
ip= 192.168.0.3
port=21
username=mng
password=qqhbc
#websit
segment:websit
ip=192.168.0.222
port=8000
address= http://www.sina.com.cn
#netconfig
segment:netconfig
ip = 192.168.9.28
port= 1045
mac= AA.EF.FF.BA.3F.7A
timeout=600000
文字ごとにスキャンして分析するのは難しくありません。
この種の質問については、まず自分でプログラムを作成して分析してから、何か問題が発生したかどうかを尋ねる必要があります。質問を投稿すれば他の人が直接プログラムを提供してくれるとは期待しないでください。
自分でやるという意識を持ち、衣食を十分に整え、プログラミングを学ぶ必要があります。
これは複雑ではありません。 。ファイルの読み取りを見てみましょう。まず、txt を読み取り、文字列を分析します。
アイデア:
を検索してください。1. コマンド
javac GetConfig.java
の機能を理解していますか?java GetConfig config.txt jdbcconfig username
このコマンドはコンパイルされた GetConfig ファイルを実行するためのものですが、対応するパラメーター
config.txt jdbcconfig username
はプログラムによってどのように取得されるのでしょうか? 「java main args」2. 対象のファイル名がわかったら、Javaを使ってローカルファイルをメモリに読み込み、「java read file」を自分で検索する方法
3. ファイルがメモリに読み込まれた後、質問の要件に従って文字列処理を実行し、「Java 文字列の使用法」を自分で検索できます
ヒント: ファイルを 1 行ずつ読み取り、必要に応じて各行を解析し、目的のフィールド名が見つかったら、値を直接出力できます。
もっと試してみてください。