Download
Entwicklung
Konto
Download
Entwicklung
Anmelden
Vergessen Konto/Passwort
Konto erstellen
Sprache
Hilfe
Sprache
Hilfe
×
Anmelden
Anmeldename
Passwort
×
Vergessen Konto/Passwort
Übersetzungsstatus von Deutsch
Kategorie:
Software
Personen
PersonalForge
Magazine
Wiki
Suche
OSDN
>
Finden Software
>
System
>
TERASOLUNA Framework
>
Ticket-Liste / Suche
>
Ticket #12493
TERASOLUNA Framework
Beschreibung
Projekt Zusammenfassung
Entwickler-Dashboard
Web-Seite
Entwickler
Bildergalerie
RSS Feed-Liste
Aktivität
Statistiken
Historie
Downloads
Aller Releases-Liste
Statistiken
Quellcode
Quellcode-Repositorys-Liste
Subversion
Repository ansehen
Ticket
Ticket-Liste
Liste der Meilensteine
Typenliste
Komponentenliste
Liste der zuletzt benutzten Tickets/RSS
Neue Ticket abschicken
Dokumente
Wiki
Titelseite
Titel-Index
Kürzliche Änderungen
Doc Mgr
List Docs
Kommunikation
Foren
Forum-Liste
Offene Diskussion (1277)
Mailinglisten
Alle Mailinglisten
terasoluna-information
Neuigkeiten
Ticket #12493
Ticket-Liste
Neue Ticket abschicken
RSS
StringUtilの改善要望
Eröffnet am:
2008-05-12 02:17
Letztes Update:
2008-05-18 01:59
beobachte
ON
OFF
Auswertung:
kidotaka
Verantwortlicher:
(Keine)
Typ:
Funktionsanfragen
Status:
Offen
Komponente:
(Keine)
Meilenstein:
(Keine)
Priorität:
5 - Mittel
Schweregrad:
5 - Mittel
Lösung:
Keine
Datei:
3
Details
Antworten
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-Verlauf (3/5 Historien)
Show older Histories
2008-05-12 07:59
Aktualisiert von:
kidotaka
File
2321: StringUtil.java
is attached
2008-05-12 08:02
Aktualisiert von:
kidotaka
File
2322: StringUtil.java
is attached
Kommentar
Antworten
Logged In: YES
user_id=31181
簡単な修正イメージとしてファイルを添付します。
2008-05-14 16:13
Aktualisiert von:
kimuraku
Kommentar
Antworten
Logged In: YES
user_id=31940
ご要望ありがとうございます。
半角全角のマッピングに関しては、ご指摘の通り
Mapを利用するのが良いと思います。
次期バージョンアップ時には是非検討させていただきます。
今後ともTERASOLUNAをよろしくお願いいたします。
2008-05-14 16:14
Aktualisiert von:
kimuraku
Kommentar
Antworten
Logged In: YES
user_id=31940
ご要望ありがとうございます。
半角全角のマッピングに関しては、ご指摘の通り
Mapを利用するのが良いと思います。
次期バージョンアップ時には是非検討させていただきます。
今後ともTERASOLUNAをよろしくお願いいたします。
2008-05-18 01:59
Aktualisiert von:
kidotaka
File
2328: StringUtil.java
is attached
Kommentar
Antworten
Logged In: YES
user_id=31181
未テストで思い切りバグらせてましたが、
既存のテストケースを実施して動く状態にしてみました。
Dateianhangliste (
3
)
Dateianhangliste
StringUtil.java
(29KB)
修正イメージ(未テスト、プロパティ実装なし)
StringUtil.java
(29KB)
修正イメージ(未テスト、プロパティ実装なし)
StringUtil.java
(29KB)
修正イメージ(テスト済み(既存テストケースのみ)、プロパティ実装なし)
Bearbeiten
Kommentar hinzufügen
You are not logged in.
I you are not logged in, your comment will be treated as an anonymous post. »
Anmelden
Kommentar hinzufügen
Vorschau
Abschicken
半角=>全角に部分で、半角と全角を保持する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のまま
比較するべきかと思います。