Skip to content

Conversation

manab-pr
Copy link

@manab-pr manab-pr commented Oct 1, 2025

Summary

This PR introduces new features and improvements to enhance Japanese text processing capabilities in the library.

New Features

  • Direct Kana Conversion

    • HiraganaToKatakana() – Convert hiragana to katakana
    • KatakanaToHiragana() – Convert katakana to hiragana
  • Character Detection

    • ContainsKana() – Check if string contains kana
    • ContainsHiragana() – Check if string contains hiragana
    • ContainsKatakana() – Check if string contains katakana
    • ContainsKanji() – Check if string contains kanji
  • Character Counting

    • CountKana() – Count all kana characters
    • CountHiragana() – Count hiragana characters
    • CountKatakana() – Count katakana characters
    • CountKanji() – Count kanji characters
    • CountRomaji() – Count romaji (Latin) characters

Improvements

  • Added empty string handling for all conversion functions
  • Introduced named constants for special kana (小さいつ, ん, ー)
  • Refactored code to replace magic strings with constants
  • Fixed typo in IsKanji documentation

Testing

  • Added unit tests for all new functions
  • Verified empty string edge cases
  • Included benchmark tests for performance validation

Documentation

  • Updated README.md with examples for new functions
  • Added go.mod for Go module support

Test Plan

All tests pass successfully:

go test -v
go test -bench=.

- Add HiraganaToKatakana and KatakanaToHiragana conversion functions
- Add Contains* functions (ContainsKana, ContainsHiragana, ContainsKatakana, ContainsKanji)
- Add Count* functions (CountKana, CountHiragana, CountKatakana, CountKanji, CountRomaji)
- Add empty string handling for all conversion functions
- Add constants for special kana characters
- Add comprehensive tests and benchmarks
- Update [README.md](http://readme.md/) with usage examples
- Fix typo in IsKanji documentation
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant