Télécharger
Développer
Compte
Télécharger
Développer
Connexion
Mot de passe oublié ?
Créer un compte
Langue
Aide
Langue
Aide
×
Connexion
Nom du compte
Mot de passe
×
Mot de passe oublié ?
Traduction statut du Français
Catégorie :
Logiciel
Peuple
PersonalForge
Magazine
Wiki
Recherche
OSDN
>
Trouver un logiciel
>
System
>
TERASOLUNA Framework
>
Ticket List/Search
>
Ticket #12493
TERASOLUNA Framework
Description
Résumé du projet
Dashboard - Développeur
Page Web
Développeurs
Galerie d'images
Liste des flux RSS
Activité
Statistiques
Historique
Téléchargements
List of Releases
Stats
Code Source
Liste des dépôts de code
Subversion
Voir le référentiel
Ticket
Liste des tickets
Liste des Jalons
Liste des types
Liste des composants
Liste des tickets/RSS fréquemment utilisés
Soumettre un nouveau ticket
Documents
Wiki
Page de garde
Index du titre
Modifications récentes
Doc Mgr
List Docs
Communication
Forums
Liste des forums
Discussion-Ouverte (1277)
Listes de diffusion
Liste de ML
terasoluna-information
Nouvelles
Ticket #12493
Liste des tickets
Soumettre un nouveau ticket
RSS
StringUtilの改善要望
Date d'ouverture:
2008-05-12 02:17
Dernière mise à jour:
2008-05-18 01:59
monitor
ON
OFF
Rapporteur:
kidotaka
Propriétaire:
(Aucun)
Type:
Demandes de fonctionnalités
État:
Ouvert
Composant:
(Aucun)
Jalon:
(Aucun)
Priorité:
5 - moyen
Sévérité:
5 - moyen
Résolution:
Aucun
Fichier:
3
Détails
Répondre
kidotakaと言います。
半角=>全角に部分で、半角と全角を保持する2種類のStringで
実現されていますが、あの箇所は変換用のHashMap<Character
(半角),Character(全角)>を用意して実装にした方が早いです。
StringでindexOfで位置を求めてマッピングするやり方である
と、どうしても後ろの方にある文字は遅くなりますが、
HashMapの場合はそういう劣化はほとんどありません。
2種類のStringはアルファベットを先に列挙しているので、カ
タカナは基本的に変換が遅くなる実装になってます。
メモリ的には悪化しますが、検討されてはいかがでしょうか?
あと、私が似たようなクラスを作った際、半角=>全角のマッ
ピングはプロパティに出して、staticイニシャライザで初期
化するようにしていました。
prefix.<半角のユニコード>=<全角のユニコード>
あとは念のためCollections.unmodifiableMapを用いて参照専
用の処置をするなど。
他に、
nextvalue = new Character(chars[i + 1]);
if (nextvalue.equals(new Character('゙'))) {...
} else if (nextvalue.equals(new Character('゚'))) {...
こう書いてある箇所は、オブジェクトを作らずにcharのまま
比較するべきかと思います。
Ticket History (3/5 Histories)
Show older Histories
2008-05-12 07:59
Updated by:
kidotaka
File
2321: StringUtil.java
is attached
2008-05-12 08:02
Updated by:
kidotaka
File
2322: StringUtil.java
is attached
Commentaire
Répondre
Logged In: YES
user_id=31181
簡単な修正イメージとしてファイルを添付します。
2008-05-14 16:13
Updated by:
kimuraku
Commentaire
Répondre
Logged In: YES
user_id=31940
ご要望ありがとうございます。
半角全角のマッピングに関しては、ご指摘の通り
Mapを利用するのが良いと思います。
次期バージョンアップ時には是非検討させていただきます。
今後ともTERASOLUNAをよろしくお願いいたします。
2008-05-14 16:14
Updated by:
kimuraku
Commentaire
Répondre
Logged In: YES
user_id=31940
ご要望ありがとうございます。
半角全角のマッピングに関しては、ご指摘の通り
Mapを利用するのが良いと思います。
次期バージョンアップ時には是非検討させていただきます。
今後ともTERASOLUNAをよろしくお願いいたします。
2008-05-18 01:59
Updated by:
kidotaka
File
2328: StringUtil.java
is attached
Commentaire
Répondre
Logged In: YES
user_id=31181
未テストで思い切りバグらせてましたが、
既存のテストケースを実施して動く状態にしてみました。
Attachment File List (
3
)
Attachment File List
StringUtil.java
(29KB)
修正イメージ(未テスト、プロパティ実装なし)
StringUtil.java
(29KB)
修正イメージ(未テスト、プロパティ実装なし)
StringUtil.java
(29KB)
修正イメージ(テスト済み(既存テストケースのみ)、プロパティ実装なし)
Modifier
Ajouter un commentaire
You are not logged in.
I you are not logged in, your comment will be treated as an anonymous post. »
Connexion
Ajouter un commentaire
Aperçu
Soumettre
半角=>全角に部分で、半角と全角を保持する2種類のStringで
実現されていますが、あの箇所は変換用のHashMap<Character
(半角),Character(全角)>を用意して実装にした方が早いです。
StringでindexOfで位置を求めてマッピングするやり方である
と、どうしても後ろの方にある文字は遅くなりますが、
HashMapの場合はそういう劣化はほとんどありません。
2種類のStringはアルファベットを先に列挙しているので、カ
タカナは基本的に変換が遅くなる実装になってます。
メモリ的には悪化しますが、検討されてはいかがでしょうか?
あと、私が似たようなクラスを作った際、半角=>全角のマッ
ピングはプロパティに出して、staticイニシャライザで初期
化するようにしていました。
prefix.<半角のユニコード>=<全角のユニコード>
あとは念のためCollections.unmodifiableMapを用いて参照専
用の処置をするなど。
他に、
nextvalue = new Character(chars[i + 1]);
if (nextvalue.equals(new Character('゙'))) {...
} else if (nextvalue.equals(new Character('゚'))) {...
こう書いてある箇所は、オブジェクトを作らずにcharのまま
比較するべきかと思います。