Преобразование женской фамилии из мужской, подразумевает замену окончаний в слове. То есть действуют простые правила, если мужская фамилия заканчивается на -ов, -ев, -ин, -ёв то в конце добавляется -а. Если окончание на -ий, -ый, -ой добавляется -ая. Все остальные фамилии остаются как есть.
Набросаем метод:
// Метод преобразования русской женской фамилии из мужской русской фамилии
// От мужских русских фамилий на -ов, -ев, -ин, -ёв добавляется -а
// От мужских русских фамилий на -ий, -ый, -ой добавляется -ая
// Остальные остаются как есть
- (NSString*) conversionHumanWomanFamilyRu: (NSString*) humanManFamilyRu {
// Забираем от строки(мужской фамилии) два последних символа
NSString *endTwoCharactersHumanManFamilyRu = [humanManFamilyRu substringFromIndex:([humanManFamilyRu length] - 2)];
//NSLog(@"String:%@, two last character of the string:%@, string length:%lu", humanManFamilyRu, endTwoCharactersHumanManFamilyRu, ([humanManFamilyRu length] - 2));
// Сравниваем окончание
if ( [endTwoCharactersHumanManFamilyRu isEqual: @"ов"] || [endTwoCharactersHumanManFamilyRu isEqual: @"ев"] || [endTwoCharactersHumanManFamilyRu isEqual: @"ёв"] || [endTwoCharactersHumanManFamilyRu isEqual: @"ин"]) {
humanManFamilyRu = [humanManFamilyRu stringByAppendingString:@"а"];
// NSLog(@"%@",humanManFamilyRu);
} else {
if ([endTwoCharactersHumanManFamilyRu isEqual: @"ий"] || [endTwoCharactersHumanManFamilyRu isEqual: @"ый"] || [endTwoCharactersHumanManFamilyRu isEqual: @"ой"]) {
humanManFamilyRu = [humanManFamilyRu stringByReplacingCharactersInRange: NSMakeRange(([humanManFamilyRu length]-2),2) withString:@"ая" ];
// NSLog(@"%@",humanManFamilyRu);
}
}
// Возвращаем женскую фамилию
return humanManFamilyRu;
}
// От мужских русских фамилий на -ов, -ев, -ин, -ёв добавляется -а
// От мужских русских фамилий на -ий, -ый, -ой добавляется -ая
// Остальные остаются как есть
- (NSString*) conversionHumanWomanFamilyRu: (NSString*) humanManFamilyRu {
// Забираем от строки(мужской фамилии) два последних символа
NSString *endTwoCharactersHumanManFamilyRu = [humanManFamilyRu substringFromIndex:([humanManFamilyRu length] - 2)];
//NSLog(@"String:%@, two last character of the string:%@, string length:%lu", humanManFamilyRu, endTwoCharactersHumanManFamilyRu, ([humanManFamilyRu length] - 2));
// Сравниваем окончание
if ( [endTwoCharactersHumanManFamilyRu isEqual: @"ов"] || [endTwoCharactersHumanManFamilyRu isEqual: @"ев"] || [endTwoCharactersHumanManFamilyRu isEqual: @"ёв"] || [endTwoCharactersHumanManFamilyRu isEqual: @"ин"]) {
humanManFamilyRu = [humanManFamilyRu stringByAppendingString:@"а"];
// NSLog(@"%@",humanManFamilyRu);
} else {
if ([endTwoCharactersHumanManFamilyRu isEqual: @"ий"] || [endTwoCharactersHumanManFamilyRu isEqual: @"ый"] || [endTwoCharactersHumanManFamilyRu isEqual: @"ой"]) {
humanManFamilyRu = [humanManFamilyRu stringByReplacingCharactersInRange: NSMakeRange(([humanManFamilyRu length]-2),2) withString:@"ая" ];
// NSLog(@"%@",humanManFamilyRu);
}
}
// Возвращаем женскую фамилию
return humanManFamilyRu;
}
И наконец производим правильность работы метода:
NSString *humanWomanFamilyRu =[self conversionHumanWomanFamilyRu:@"Ангарский"];
NSLog(@"Русская женская фамилия:%@", humanWomanFamilyRu);
NSLog(@"Русская женская фамилия:%@", humanWomanFamilyRu);
Комментариев нет:
Отправить комментарий