英汉字典

<pre name="code" class="objc">MyDictionary.h
 
#import <Foundation/Foundation.h>

@interface MyDictionary : NSObject


@property (nonatomic, retain)NSString * engWord;
@property(nonatomic, retain)NSString * chiMean;

@end
MyDictionary.m
#import "MyDictionary.h"

@implementation MyDictionary

@end

MyTranslator.h

#import <Foundation/Foundation.h>
#import "MyDictionary.h"

@interface MyTranslator : NSObject

@property (nonatomic, retain) NSMutableDictionary * dicTranslator;


-(void)storeDic:(NSString *)filePath;
-(void)wordInputAndTranslate;
-(void)printMena:(char *)word;
-(id)init;

@end
MyTranslator.m

#import "MyTranslator.h"


@implementation MyTranslator


//读取文件并按换行符切割保存
-(NSArray *)readFile:(NSString *)filePath{
    //从文件中读取文件内容保存到NSString对象fileContent中
    NSString * fileContent = [[NSString alloc] initWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:nil];
    //将fileContent中字符串按换行符”\n“切割并保存到数组中
    NSArray * array = [fileContent componentsSeparatedByString:@"\n"];
    
    return array;
}


//将单词包括中文翻译保存到字典中
-(void)storeDic:(NSString *)filePath{
    
    NSArray * arrayFileContent = [self readFile:filePath];
    for(int i = 0; i < [arrayFileContent count]; i += 2)
    {
        //数组arrayFileContent中偶数下标内容是单词,奇数下标内容是中文翻译
        if (arrayFileContent[i] != nil && arrayFileContent[i+1] != nil) {
            NSString * word = [self analyWord:arrayFileContent[i]];
            NSString * mean = [self analyMean:arrayFileContent[i+1]];
            //将两者保存到MyDictionary类的对象dic中
            MyDictionary * dic = [[MyDictionary alloc] init];
            dic.engWord = word;
            dic.chiMean = mean;
            //将每个dic对象放入字典中,以单词为Key
            [_dicTranslator setObject:dic forKey:word];
        }
    }
}


//解析单词
-(NSString *)analyWord:(NSString *)str{
    //将字符串按“#”进行切割
    NSArray * array = [str componentsSeparatedByString:@"#"];
   
    //切割后数组中只有两个元素,下标为1的元素是单词
    return array[1];
}

//解析中文翻译
-(NSString *)analyMean:(NSString *)str{
    //将字符串按“:”进行切割
    NSArray * array = [str componentsSeparatedByString:@":"];
    
    //切割后数组中只有两个元素,下标为1的元素是中文翻译
    return array[1];
}

//打印中文翻译
-(void)printMena:(char *)word{
    NSString * str = [NSString stringWithFormat:@"%s", word];
    //将输入的单词转为小写,支持不区分大小写
    NSString * str1 = [str lowercaseString];
    if ([_dicTranslator objectForKey:str1] != nil) {
        NSLog(@"%@", [[_dicTranslator objectForKey:str1] chiMean]);
    }else{
        NSLog(@"找不到该单词!");
    }
}

//单词输入并翻译
-(void)wordInputAndTranslate{
    
    while(1)
    {
        NSLog(@"=================================");
        NSLog(@"=======欢迎使用小伍的英汉字典========");
        NSLog(@"=================================");
        NSLog(@"===请输入要查询的单词(输入“0”退出)====");
        
        char word[20] = "\n";
        scanf("%[^\n]", word);
        getchar();
        
        //判断输入的是否”0“,是的话则退出
        if ([@"0" isEqualToString:[NSString stringWithFormat:@"%s", word]]) {
            break;
        }
        [self printMena: word];
    }
}


-(id)init{
    if (self = [super init]) {
        _dicTranslator = [[NSMutableDictionary alloc] init];
    }
    return self;
}

@end
main.m

#import <Foundation/Foundation.h>
#import "MyTranslator.h"

int main(int argc, const char * argv[])
{

    @autoreleasepool {
        
        MyTranslator * translator = [[MyTranslator alloc] init];
        [translator storeDic:@"这里写入英汉字典文件的路径即可"];
        [translator wordInputAndTranslate];
    }
    return 0;
}
字典内容格式如下:

#a
Trans:art. 一;字母A
#a.m.
Trans:n. 上午
#a/c
Trans:n. 往来帐户@往来:come - and - go; contact; intercourse@n. 往来帐户
#aardvark
Trans:n. 土猪
#aardwolf
Trans:n. 土狼
#aasvogel
Trans:n. 秃鹰之一种
#abaci
Trans:n. 算盘
#aback
Trans:ad. 向后地;朝后地
#abacus
Trans:n. 算盘
#abaft
Trans:ad. 向船尾@prep. 在...后
#abalone
Trans:n. 鲍鱼
#abandon
Trans:vt. 放弃;沉溺@n. 放任
#abandoned
Trans:a. 被抛弃的;自弃的;自甘堕落的
#abandonee
Trans:n. 被遗弃者;被委付者
#abandoner
Trans:n. 遗弃者;委付者
由于字典里单词比较多,就不全贴出来,以上的内容可以作为参考,自己新建一个.txt文件,将以上字典内容粘贴进去测试。




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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值