java将中文转英文字母

Java字符串转化问题:

楼上的 楼主敏简或是要求输入字母求得相咐消关的汉字字符串,而你音品码查询是从汉字求得首字母吧?

我做过一个公交查询系统,其中有个功能就是通过字母显示出相应的站点。

首先,你想通过‘W’得到王力宏、王菲等你就必须先把这些名字存到数据库中吧,然后你再在数据库中给这些名字项添加一个首字母的字段,当然你不用手动去输入它们的首字母,写个方法循环把它们的首字母输出并存入数据库中,方法可用楼上的音品码查询,我也写了个类似的方法,如下:

public class StringUtil {

//private static Log logger = LogFactory.getLog(StringUtil.class);

// 国标码和区位码转换常量

int GB_SP_DIFF = 160;

//存放国标一级汉字不同读音的起始区位码

int[] secPosValueList = {

1601, 1637, 1833, 2078, 2274, 2302, 2433, 2594, 2787,

3106, 3212, 3472, 3635, 3722, 3730, 3858, 4027, 4086,

4390, 4558, 4684, 4925, 5249, 5600};

//存放国标一级汉字不同读音的起始区位码对应读音

char[] firstLetter = {

‘a’, ‘b’, ‘c’, ‘d’, ‘e’, ‘f’, ‘g’, ‘h’, ‘j’,

‘k’, ‘l’, ‘m’桥伍, ‘n’, ‘o’, ‘p’, ‘q’, ‘r’, ‘s’,

‘t’, ‘w’, ‘x’, ‘y’, ‘z’};

char convert(String ch) {

byte[] bytes=new byte[2];

try {

bytes = ch.getBytes(“GB2312”);

} catch (UnsupportedEncodingException e) {

e.printStackTrace();

}

char result = ‘-‘;

int secPosValue = 0;

int i;

for (i = 0; i bytes.length; i++) {

bytes[i] -= GB_SP_DIFF;

}

secPosValue = bytes[0] * 100 + bytes[1];

for (i = 0; i 23; i++) {

if (secPosValue = secPosValueList[i] secPosValue secPosValueList[i + 1]) {

result = firstLetter[i];

break;

}

}

return result;

}

}

调用convert(String str)方法就是返回str字符串的首字的首字母。其它的应该没什么难的了

java代码如何实现中英文转换

使用java提供的国穗郑际化功能猜答颂就可以了。不过建议你使用框架技术中的国际化,框架技术中的国际化都做过封装,实现起来相对简单的多。只需要简单的配举埋置就可以实现中英文或者其他语言的切换了!~

java将中文转英文字母

java如何将数字转换为英文

Java 数字转成英文

英文数词,按3位3位区分

Hundred: 100

Thousand:1,000

Million: 1,000,000

Billion: 1,000,000,000

Trillion: 1,000,000,000,000

Quintillion: 1,000,000,000,000,000,000

Sextillion: 1,000,000,000,000,000,000,000

Nonillion: 1,000,000,000,000,000,000,000,000,000,000

Centillion: 1 followed by 303 zeros

所以把数字字符串按3位分割,分别解析

public class NumUtil {

public static final String[] enNum = { // 基本数词表

“zero”, “one”, “tow”, “three”, “four”, “five”, “six”, “seven”, “eight”,

“nine”, “ten”, “eleven”, “twelve”, “thirteen”, “fourteen”,

“fifteen”, “sixteen”, “seventeen”, “eighteen”, “nineteen”,

“twenty”, “”, “”, “”, “”, “”, “”, “”, “”, “”, “thirty”, “”, “”, “帆埋巧”,

“”, “”, “”, “”, “”, “”, “fourty”, “”, “”, “”, “”, “”, “”, “”, “”,

“”, “fifty”, “”, “”, “”, “”, “”, “”, “”, “”, “”, “sixty”, “”, “”,

“”, “”, “”, “”, “”, “”, “”, “seventy”, “”, “”, “”, “”, “”, “”, “”,

“”, “”, “态键eighty”, “”, “”, “”, “”, “”, “”, “”, “”, “”, “ninety” };

public static final String[] enUnit = { “hundred”, “thousand”, “million”,

“billion”, “trillion”, “quintillion” }; // 单位表

public static void main(String[] args) {

System.out.println(analyze(1)); // 测试数据

System.out.println(analyze(21));

System.out.println(analyze(105));

System.out.println(analyze(3250));

System.out.println(analyze(47826));

System.out.println(analyze(56945781));

}

public static String analyze(long num) { // long型参数,

return analyze(String.valueOf(num)); // 因为long型有极限,所以以字符串参数方法为主

}

public static String analyze(String num) { // 数字字符串参数

// 判断字符串是否为数字

if (!num.matches(“\\d+”)) {

return String.format(“%s is not number”, num);

}

num = num.replaceAll(“^[0]*([1-9]*)”, “$1”); // 把字符串前面的0去掉

if (num.length() == 0) { // 如果长度为0,则原串都是0

return enNum[0];

} else if (num.length() 9) { // 如果大于9,即大于999999999,题目限制条件

return “too big”;

}

// 按3位分割分组

int count = (num.length() % 3 == 0) ? num.length() / 3

: num.length() / 3 + 1;

if (count enUnit.length) {

return “too big”;

} // 判断组液源单位是否超过,

// 可以根据需求适当追加enUnit

String[] group = new String[count];

for (int i = num.length(), j = group.length – 1; i 0; i -= 3) {

group[j–] = num.substring(Math.max(i – 3, 0), i);

}

StringBuilder buf = new StringBuilder(); // 结果保存

for (int i = 0; i count; i++) { // 遍历分割的组

int v = Integer.valueOf(group[i]);

if (v = 100) { // 因为按3位分割,所以这里不会有超过999的数

buf.append(enNum[v / 100]).append(” “).append(enUnit[0])

.append(” “);

v = v % 100; // 获取百位,并得到百位以后的数

if (v != 0) {

buf.append(“and “);

} // 如果百位后的数不为0,则追加and

}

if (v != 0) { // 前提是v不为0才作解析

if (v 20 || v % 10 == 0) { // 如果小于20或10的整数倍,直接取基本数词表的单词

buf.append(enNum[v]).append(” “);

} else { // 否则取10位数词,再取个位数词

buf.append(enNum[v – v % 10]).append(” “);

buf.append(enNum[v % 10]).append(” “);

}

if (i != count – 1) { // 百位以上的组追加相应的单位

buf.append(enUnit[count – 1 – i]).append(” “);

}

}

}

return buf.toString().trim(); // 返回值

}

}

本文来自投稿,不代表【】观点,发布者:【

本文地址: ,如若转载,请注明出处!

举报投诉邮箱:253000106@qq.com

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2024年3月21日 21:18:33
下一篇 2024年3月21日 21:23:51

相关推荐

  • 深入java虚拟机pdf,深入java虚拟机 中村成洋 pdf

    在linux环境下,java怎么实现从word格式转换为pdf格式 //设置当前使用的打印机,我的Adobe Distiller打印机名字为 Adobe PDF wordCom.setProperty( ActivePrinter , new Variant( Adobe PDF ));//设置printout的参数,将word文档打印为postscript…

    2024年5月23日
    4600
  • java截取指定长度字符串,java截取指定字符串之后的

    java中如何截取字符串中的指定一部分 第一个参数是开始截取的字符位置。(从0开始)第二个参数是结束字符的位置+1。(从0开始)indexof函数的作用是查找该字符串中的某个字的位置,并且返回。 int end);截取s中从begin开始至end结束时的字符串,并将其赋值给s;split讲解:java.lang.string.split split 方法 将…

    2024年5月23日
    4400
  • java绑定一个端口,java使用端口

    java如何多个service共用一个端口 你如果有多个项目的话,你可以把多个项目放到一个tomcat里面,这样端口相同使用项目名称来进行区分项目。你如果非要使用同一个,你也可以配置不同的域名导向不同的项目。就是访问的域名不同转接到的项目不同。 如果需要同时启动多个程序,要么修改tomcat的配置文件中的监听端口。要么修改jar包程序的监听端口。不能在一台服…

    2024年5月23日
    3600
  • java多线程并发编程基础,Java多线程并发执行返回

    电脑培训分享Java并发编程:核心理论 电脑培训发现本系列会从线程间协调的方式(wait、notify、notifyAll)、Synchronized及Volatile的本质入手,详细解释JDK为我们提供的每种并发工具和底层实现机制。 人们开始意识到了继承的众多缺点,开始努力用聚合代替继承。软件工程解决扩展性的重要原则就是抽象描述,直接使用的工具就是接口。接…

    2024年5月23日
    4800
  • 自学java找工作,自学java找工作需要包装简历吗

    自学java学多久可以找到工作 1、自学Java至少需要一年以上的时间才能达到找工作的水平。报班培训四到六个月的时间就可以找到一份不错的工作。 2、自学Java至少需要一年以上的时间才能达到找工作的水平。 3、如果要想找到一份Java相关的工作,需要至少学习5-6个月时间才能就业。Java开发需要掌握一些基础的编程语言知识,比如掌握面向对象的编程思想、基本的…

    2024年5月23日
    4400
  • java左移右移,java 左移

    java位移问题 1、思路:直接用Integer类的bit运算操作。 2、移位操作:左移:向左移位,符号后面的数字是移了多少位,移的位用0补齐,例如2进制数01111111左移一位后变为11111110,移位是字节操作。 3、Java 位运算 Java 位运算[转]一,Java 位运算表示方法: 在Java语言中,二进制数使用补码表示,最高位为符号位,正数的…

    2024年5月23日
    4300
  • java技术规范,java规范性要求

    现在主流的JAVA技术是什么? java最流行开发技术程序员必看 1 、Git Git一直是世界上最受欢迎的Java工具之一,也是Java开发人员最杰出的工具之一。Git是一个开源工具,是-种出色的分布式版本控制解决方案。 (1).Java基础语法、数组、类与对象、继承与多态、异常、范型、集合、流与文件、反射、枚举、自动装箱和注解。(2).Java面向对象编…

    2024年5月23日
    4100
  • javasocket编程,Java socket编程中,禁用nagle算法的参数

    Java进行并发多连接socket编程 1、Java可利用ServerSocket类对外部客户端提供多个socket接口。基本的做法是先创建一个ServerSocket实例,并绑定一个指定的端口,然后在这个实例上调用accept()方法等待客户端的连接请求。 2、Socket socket=server.accept(0;Thread handleThrea…

    2024年5月23日
    4700
  • java死亡,java死代码是什么意思

    我的世界传送回死亡点指令是什么? 1、下面就让我们一起来了解一下吧:我的世界回到死的地方的指令是输入/back,就可以回到死亡地点了,当然也可以看信标,因为死亡后会有一道光集中在死亡点,只要循着光就可以找到目的地了。 2、在服务器中的指令 首先打开指令台,在指令行输入“/back”就可以回到自己的死亡地点了。在单人游戏中的指令 在单人游戏中,您无法直接返回到…

    2024年5月23日
    4900
  • myeclipse能部署java工程么,myeclipse支持jdk18

    myeclipse如何建java文件 1、点击【File】—【New】–【Class】在如下界面,输入Class的名字,如Test,点击【Finish】。Test.java文件创建成功。 2、点击【File】—【New】–【Class】 在如下界面,输入Class的名字,如Test,点击【Finish】。 Te…

    2024年5月23日
    4100

发表回复

登录后才能评论



关注微信