当前位置:主页   - 电脑 - 程序设计 - JAVA
J2ME中的字符串管理和多语言支持
来源:网络   作者:   更新时间:2012-06-06
收藏此页】    【字号    】    【打印】    【关闭

  近期学习j2me开发,也谈谈我对字符串管理的一个方案。

  字符串管理的目的是字符串的资源化管理。

  1。这个系统应该可以通过静态方法访问;

  2。字符串保存在资源当中;

  3。可以方便的切换各种语言以达到多语言支持;

  4。字符串资源有一个名字,通过名字访问该资源;

  5。名字的规则应该是类名+内部名称。

  下一个问题就是资源以何种格式存储的问题:

  按理说xml是理想的方式,但是考虑到j2me系统的特殊性,采用plain text更为合适

  格式是string-name string-value

  name和value之间以空格或t分割,不同的字符串之间以n分隔。

  内部采用hashtable存储。

  通过以上的分析,可以写出如下的StringManager

package vmlinux.app;
  import java.io.*;
  import java.util.*;
  public class StringManager {
  String lang_;
  String name_;
  Hashtable strings_;
  boolean loaded_;
  public StringManager(String lang)
  {
  lang_=lang;
  loaded_=false;
  }
  public void setLang(String lang)
  {
  if(lang_==lang)
  return;
  lang_=lang;
  loaded_=false;
  }
  public void load(String name)
  {
  if(name==name_ && loaded_)
  return;
  if(strings_==null)
  strings_=new Hashtable();
  else
  strings_.clear();
  InputStream is=this.getClass().getResourceAsStream("/strings/"+name+"."+lang_);
  try
  {
  byte[] buf=new byte[1024];
  int c=is.read(buf);
  StringBuffer o=new StringBuffer();
  String key=null;
  do{
  String data=new String(buf,0,c);
  int s=0;
  for(int i=0;i
  {
  char x=data.charAt(i);
  if(s==0 && (x==' '

其它资源
来源声明

版权与免责声明
1、本站所发布的文章仅供技术交流参考,本站不主张将其做为决策的依据,浏览者可自愿选择采信与否,本站不对因采信这些信息所产生的任何问题负责。
2、本站部分文章来源于网络,其版权为原权利人所有。由于来源之故,有的文章未能获得作者姓名,署“未知”或“佚名”。对于这些文章,有知悉作者姓名的请告知本站,以便及时署名。如果作者要求删除,我们将予以删除。除此之外本站不再承担其它责任。
3、本站部分文章来源于本站原创,本站拥有所有权利。
4、如对本站发布的信息有异议,请联系我们,经本站确认后,将在三个工作日内做出修改或删除处理。
请参阅权责声明