- 浏览: 7331798 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (1546)
- 企业中间件 (236)
- 企业应用面临的问题 (236)
- 小布Oracle学习笔记汇总 (36)
- Spring 开发应用 (54)
- IBatis开发应用 (16)
- Oracle基础学习 (23)
- struts2.0 (41)
- JVM&ClassLoader&GC (16)
- JQuery的开发应用 (17)
- WebService的开发应用 (21)
- Java&Socket (44)
- 开源组件的应用 (254)
- 常用Javascript的开发应用 (28)
- J2EE开发技术指南 (163)
- EJB3开发应用 (11)
- GIS&Mobile&MAP (36)
- SWT-GEF-RCP (52)
- 算法&数据结构 (6)
- Apache开源组件研究 (62)
- Hibernate 学习应用 (57)
- java并发编程 (59)
- MySQL&Mongodb&MS/SQL (15)
- Oracle数据库实验室 (55)
- 搜索引擎的开发应用 (34)
- 软件工程师笔试经典 (14)
- 其他杂项 (10)
- AndroidPn& MQTT&C2DM&推技术 (29)
- ActiveMQ学习和研究 (38)
- Google技术应用开发和API分析 (11)
- flex的学习总结 (59)
- 项目中一点总结 (20)
- java疑惑 java面向对象编程 (28)
- Android 开发学习 (133)
- linux和UNIX的总结 (37)
- Titanium学习总结 (20)
- JQueryMobile学习总结 (34)
- Phonegap学习总结 (32)
- HTML5学习总结 (41)
- JeeCMS研究和理解分析 (9)
最新评论
-
lgh1992314:
[u][i][b][flash=200,200][url][i ...
看看mybatis 源代码 -
尼古拉斯.fwp:
图片根本就不出来好吧。。。。。。
Android文件图片上传的详细讲解(一)HTTP multipart/form-data 上传报文格式实现手机端上传 -
ln94223:
第一个应该用排它网关吧 怎么是并行网关, 并行网关是所有exe ...
工作流Activiti的学习总结(八)Activiti自动执行的应用 -
ZY199266:
获取不到任何消息信息,请问这是什么原因呢?
ActiveMQ 通过JMX监控Connection,Queue,Topic的信息 -
xiaoyao霄:
DestinationSourceMonitor 报错 应该导 ...
ActiveMQ 通过JMX监控Connection,Queue,Topic的信息
字符串的常用方法总结:
package cn.com.huawei.opensource.common.lang;
import java.io.*;
public class StringConverter {
public StringConverter() {
}
byte[] stringToFullByteArray(String s) {
int i = s.length();
byte abyte0[] = new byte[i * 2];
for (int j = 0; j < i; j++) {
char c = s.charAt(j);
abyte0[j * 2] = (byte) ((c & 0xff00) >>;
abyte0[j * 2 + 1] = (byte) (c & 0xff);
}
return abyte0;
}
public static byte[] hexToByte(String s) throws IOException {
int i = s.length() / 2;
byte abyte0[] = new byte[i];
int j = 0;
if (s.length() % 2 != 0)
throw new IOException(
"hexadecimal string with odd number of characters");
for (int k = 0; k < i; k++) {
char c = s.charAt(j++);
int l = "0123456789abcdef0123456789ABCDEF".indexOf(c);
if (l == -1)
throw new IOException(
"hexadecimal string contains non hex character");
int i1 = (l & 0xf) << 4;
c = s.charAt(j++);
l = "0123456789abcdef0123456789ABCDEF".indexOf(c);
i1 += l & 0xf;
abyte0[k] = (byte) i1;
}
return abyte0;
}
public static String byteToHex(byte abyte0[]) {
int i = abyte0.length;
char ac[] = new char[i * 2];
int j = 0;
int k = 0;
for (; j < i; j++) {
int l = abyte0[j] & 0xff;
ac[k++] = HEXCHAR[l >> 4 & 0xf];
ac[k++] = HEXCHAR[l & 0xf];
}
return new String(ac);
}
public static int unicodeToAscii(OutputStream outputstream, String s,
boolean flag) throws IOException {
int i = 0;
if (s == null || s.length() == 0)
return 0;
int j = s.length();
for (int k = 0; k < j; k++) {
char c = s.charAt(k);
if (c == '\\') {
if (k < j - 1 && s.charAt(k + 1) == 'u') {
outputstream.write(c);
outputstream.write(117);
outputstream.write(48);
outputstream.write(48);
outputstream.write(53);
outputstream.write(99);
i += 6;
} else {
outputstream.write(c);
i++;
}
continue;
}
if (c >= ' ' && c <= '\177') {
outputstream.write(c);
i++;
if (c == '\'' && flag) {
outputstream.write(c);
i++;
}
} else {
outputstream.write(92);
outputstream.write(117);
outputstream.write(HEXCHAR[c >> 12 & 0xf]);
outputstream.write(HEXCHAR[c >> 8 & 0xf]);
outputstream.write(HEXCHAR[c >> 4 & 0xf]);
outputstream.write(HEXCHAR[c & 0xf]);
i += 6;
}
}
return i;
}
public static String asciiToUnicode(byte abyte0[], int i, int j) {
if (j == 0)
return "";
char ac[] = new char[j];
int k = 0;
for (int l = 0; l < j; l++) {
byte byte0 = abyte0[i + l];
if (byte0 == 92 && l < j - 5) {
byte byte1 = abyte0[i + l + 1];
if (byte1 == 117) {
l++;
int i1 = "0123456789abcdef0123456789ABCDEF"
.indexOf(abyte0[i + ++l]) << 12;
i1 += "0123456789abcdef0123456789ABCDEF".indexOf(abyte0[i
+ ++l]) << 8;
i1 += "0123456789abcdef0123456789ABCDEF".indexOf(abyte0[i
+ ++l]) << 4;
i1 += "0123456789abcdef0123456789ABCDEF".indexOf(abyte0[i
+ ++l]);
ac[k++] = (char) i1;
} else {
ac[k++] = (char) byte0;
}
} else {
ac[k++] = (char) byte0;
}
}
return new String(ac, 0, k);
}
public static String asciiToUnicode(String s) {
if (s == null || s.indexOf("\\u") == -1)
return s;
int i = s.length();
char ac[] = new char[i];
int j = 0;
for (int k = 0; k < i; k++) {
char c = s.charAt(k);
if (c == '\\' && k < i - 5) {
char c1 = s.charAt(k + 1);
if (c1 == 'u') {
k++;
int l = "0123456789abcdef0123456789ABCDEF".indexOf(s
.charAt(++k)) << 12;
l += "0123456789abcdef0123456789ABCDEF".indexOf(s
.charAt(++k)) << 8;
l += "0123456789abcdef0123456789ABCDEF".indexOf(s
.charAt(++k)) << 4;
l += "0123456789abcdef0123456789ABCDEF".indexOf(s
.charAt(++k));
ac[j++] = (char) l;
} else {
ac[j++] = c;
}
} else {
ac[j++] = c;
}
}
return new String(ac, 0, j);
}
public static int writeUTF(String s, OutputStream outputstream)
throws IOException {
int i = s.length();
boolean flag = false;
int j = 0;
for (int k = 0; k < i; k++) {
char c = s.charAt(k);
if (c >= '\001' && c <= '\177') {
outputstream.write(c);
j++;
continue;
}
if (c > '\u07FF') {
outputstream.write(0xe0 | c >> 12 & 0xf);
outputstream.write(0x80 | c >> 6 & 0x3f);
outputstream.write(0x80 | c >> 0 & 0x3f);
j += 3;
} else {
outputstream.write(0xc0 | c >> 6 & 0x1f);
outputstream.write(0x80 | c >> 0 & 0x3f);
j += 2;
}
}
return j;
}
public static int getUTFSize(String s) {
int i = s != null ? s.length() : 0;
int j = 0;
for (int k = 0; k < i; k++) {
char c = s.charAt(k);
if (c >= '\001' && c <= '\177') {
j++;
continue;
}
if (c > '\u07FF')
j += 3;
else
j += 2;
}
return j;
}
public static String inputStreamToString(InputStream inputstream, int i)
throws IOException {
InputStreamReader inputstreamreader = new InputStreamReader(inputstream);
StringWriter stringwriter = new StringWriter();
char c = '\u2000';
char ac[] = new char[c];
int j = i;
do {
if (j <= 0)
break;
int k = inputstreamreader.read(ac, 0, j <= c ? j : ((int) (c)));
if (k == -1)
break;
stringwriter.write(ac, 0, k);
j -= k;
} while (true);
stringwriter.close();
return stringwriter.toString();
}
public static String toQuotedString(String s, char c, boolean flag) {
if (s == null)
return null;
int i = flag ? count(s, c) : 0;
int j = s.length();
char ac[] = new char[2 + i + j];
int k = 0;
int l = 0;
ac[l++] = c;
for (; k < j; k++) {
char c1 = s.charAt(k);
ac[l++] = c1;
if (flag && c1 == c)
ac[l++] = c1;
}
ac[l] = c;
return new String(ac);
}
static int count(String s, char c) {
int i = 0;
if (s != null) {
int j = s.length();
do {
if (--j < 0)
break;
char c1 = s.charAt(j);
if (c1 == c)
i++;
} while (true);
}
return i;
}
private static final char HEXCHAR[] = { '0', '1', '2', '3', '4', '5', '6',
'7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };
private static final String HEXINDEX = "0123456789abcdef0123456789ABCDEF";
}
package cn.com.huawei.opensource.common.lang;
import java.io.*;
public class StringConverter {
public StringConverter() {
}
byte[] stringToFullByteArray(String s) {
int i = s.length();
byte abyte0[] = new byte[i * 2];
for (int j = 0; j < i; j++) {
char c = s.charAt(j);
abyte0[j * 2] = (byte) ((c & 0xff00) >>;
abyte0[j * 2 + 1] = (byte) (c & 0xff);
}
return abyte0;
}
public static byte[] hexToByte(String s) throws IOException {
int i = s.length() / 2;
byte abyte0[] = new byte[i];
int j = 0;
if (s.length() % 2 != 0)
throw new IOException(
"hexadecimal string with odd number of characters");
for (int k = 0; k < i; k++) {
char c = s.charAt(j++);
int l = "0123456789abcdef0123456789ABCDEF".indexOf(c);
if (l == -1)
throw new IOException(
"hexadecimal string contains non hex character");
int i1 = (l & 0xf) << 4;
c = s.charAt(j++);
l = "0123456789abcdef0123456789ABCDEF".indexOf(c);
i1 += l & 0xf;
abyte0[k] = (byte) i1;
}
return abyte0;
}
public static String byteToHex(byte abyte0[]) {
int i = abyte0.length;
char ac[] = new char[i * 2];
int j = 0;
int k = 0;
for (; j < i; j++) {
int l = abyte0[j] & 0xff;
ac[k++] = HEXCHAR[l >> 4 & 0xf];
ac[k++] = HEXCHAR[l & 0xf];
}
return new String(ac);
}
public static int unicodeToAscii(OutputStream outputstream, String s,
boolean flag) throws IOException {
int i = 0;
if (s == null || s.length() == 0)
return 0;
int j = s.length();
for (int k = 0; k < j; k++) {
char c = s.charAt(k);
if (c == '\\') {
if (k < j - 1 && s.charAt(k + 1) == 'u') {
outputstream.write(c);
outputstream.write(117);
outputstream.write(48);
outputstream.write(48);
outputstream.write(53);
outputstream.write(99);
i += 6;
} else {
outputstream.write(c);
i++;
}
continue;
}
if (c >= ' ' && c <= '\177') {
outputstream.write(c);
i++;
if (c == '\'' && flag) {
outputstream.write(c);
i++;
}
} else {
outputstream.write(92);
outputstream.write(117);
outputstream.write(HEXCHAR[c >> 12 & 0xf]);
outputstream.write(HEXCHAR[c >> 8 & 0xf]);
outputstream.write(HEXCHAR[c >> 4 & 0xf]);
outputstream.write(HEXCHAR[c & 0xf]);
i += 6;
}
}
return i;
}
public static String asciiToUnicode(byte abyte0[], int i, int j) {
if (j == 0)
return "";
char ac[] = new char[j];
int k = 0;
for (int l = 0; l < j; l++) {
byte byte0 = abyte0[i + l];
if (byte0 == 92 && l < j - 5) {
byte byte1 = abyte0[i + l + 1];
if (byte1 == 117) {
l++;
int i1 = "0123456789abcdef0123456789ABCDEF"
.indexOf(abyte0[i + ++l]) << 12;
i1 += "0123456789abcdef0123456789ABCDEF".indexOf(abyte0[i
+ ++l]) << 8;
i1 += "0123456789abcdef0123456789ABCDEF".indexOf(abyte0[i
+ ++l]) << 4;
i1 += "0123456789abcdef0123456789ABCDEF".indexOf(abyte0[i
+ ++l]);
ac[k++] = (char) i1;
} else {
ac[k++] = (char) byte0;
}
} else {
ac[k++] = (char) byte0;
}
}
return new String(ac, 0, k);
}
public static String asciiToUnicode(String s) {
if (s == null || s.indexOf("\\u") == -1)
return s;
int i = s.length();
char ac[] = new char[i];
int j = 0;
for (int k = 0; k < i; k++) {
char c = s.charAt(k);
if (c == '\\' && k < i - 5) {
char c1 = s.charAt(k + 1);
if (c1 == 'u') {
k++;
int l = "0123456789abcdef0123456789ABCDEF".indexOf(s
.charAt(++k)) << 12;
l += "0123456789abcdef0123456789ABCDEF".indexOf(s
.charAt(++k)) << 8;
l += "0123456789abcdef0123456789ABCDEF".indexOf(s
.charAt(++k)) << 4;
l += "0123456789abcdef0123456789ABCDEF".indexOf(s
.charAt(++k));
ac[j++] = (char) l;
} else {
ac[j++] = c;
}
} else {
ac[j++] = c;
}
}
return new String(ac, 0, j);
}
public static int writeUTF(String s, OutputStream outputstream)
throws IOException {
int i = s.length();
boolean flag = false;
int j = 0;
for (int k = 0; k < i; k++) {
char c = s.charAt(k);
if (c >= '\001' && c <= '\177') {
outputstream.write(c);
j++;
continue;
}
if (c > '\u07FF') {
outputstream.write(0xe0 | c >> 12 & 0xf);
outputstream.write(0x80 | c >> 6 & 0x3f);
outputstream.write(0x80 | c >> 0 & 0x3f);
j += 3;
} else {
outputstream.write(0xc0 | c >> 6 & 0x1f);
outputstream.write(0x80 | c >> 0 & 0x3f);
j += 2;
}
}
return j;
}
public static int getUTFSize(String s) {
int i = s != null ? s.length() : 0;
int j = 0;
for (int k = 0; k < i; k++) {
char c = s.charAt(k);
if (c >= '\001' && c <= '\177') {
j++;
continue;
}
if (c > '\u07FF')
j += 3;
else
j += 2;
}
return j;
}
public static String inputStreamToString(InputStream inputstream, int i)
throws IOException {
InputStreamReader inputstreamreader = new InputStreamReader(inputstream);
StringWriter stringwriter = new StringWriter();
char c = '\u2000';
char ac[] = new char[c];
int j = i;
do {
if (j <= 0)
break;
int k = inputstreamreader.read(ac, 0, j <= c ? j : ((int) (c)));
if (k == -1)
break;
stringwriter.write(ac, 0, k);
j -= k;
} while (true);
stringwriter.close();
return stringwriter.toString();
}
public static String toQuotedString(String s, char c, boolean flag) {
if (s == null)
return null;
int i = flag ? count(s, c) : 0;
int j = s.length();
char ac[] = new char[2 + i + j];
int k = 0;
int l = 0;
ac[l++] = c;
for (; k < j; k++) {
char c1 = s.charAt(k);
ac[l++] = c1;
if (flag && c1 == c)
ac[l++] = c1;
}
ac[l] = c;
return new String(ac);
}
static int count(String s, char c) {
int i = 0;
if (s != null) {
int j = s.length();
do {
if (--j < 0)
break;
char c1 = s.charAt(j);
if (c1 == c)
i++;
} while (true);
}
return i;
}
private static final char HEXCHAR[] = { '0', '1', '2', '3', '4', '5', '6',
'7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };
private static final String HEXINDEX = "0123456789abcdef0123456789ABCDEF";
}
发表评论
-
【转】Coherence Event Processing by using Map Trigger Feature
2013-06-25 14:02 2081This article shows how to proc ... -
【转】Distributed Data Management in Oracle Coherence
2013-06-25 13:55 1891This article shows how to prov ... -
【转】How to distribute Spring Beans by using Coherence
2013-06-21 17:24 1967转载自: http://www.onli ... -
关于H2使用的那些事
2012-12-14 16:40 27187在项目中采用H2作为工 ... -
【转】ConcurrentHashMap之实现细节
2012-12-10 14:32 1771Conc ... -
【转】Java并发编程J.U.C之Condition
2012-12-10 13:14 1907转载自http://www.golde ... -
【转】Java并发编程J.U.C之锁的获取与释放
2012-12-10 13:07 1614转载自 http://www.g ... -
【转】JUC 基础内容概述
2012-12-10 13:01 2045Concurrent Programming in Jav ... -
【转】Java并发编程之ConcurrentHashMap
2012-12-10 12:56 1775ConcurrentHashMap Conc ... -
【转】单例模式完全解析
2012-12-07 12:58 1704本文将探讨单例模式的各种情况,并给出相应的建议。 单例模式应该 ... -
【转】JAVA并发容器代码随读
2012-12-06 15:29 2947转载自 http://rdc.taobao.c ... -
【转】Spring 事务管理高级应用难点剖析:
2012-12-04 16:29 2224转载自 http://www.ibm.com/deve ... -
【转】Struts2的线程安全 和Struts2中的设计模式----ThreadLocal模式
2012-12-04 15:11 4481转载自 http://downpour.ite ... -
Hibernate延迟加载和OpenSessionInView
2012-12-03 17:13 3168ThreadLocal& ... -
关于ThreadLocal分析和总结
2012-12-03 15:56 1859什么是ThreadLocal? ... -
【转】java线程阻塞中断和LockSupport的常见问题
2012-12-03 13:30 1790转载自 http://www.iteye ... -
java 中 ReentrantReadWriteLock的读锁和写锁的使用
2012-11-30 17:14 10437jdk文档中关于Reentr ... -
java 多线程中Semaphore信号量
2012-11-30 15:39 3751Semaphore信号量: 可以维护当前 ... -
Java 文件锁的使用
2012-11-30 13:21 4430多线程-内部锁、重进入 多线程 ... -
【转】线程安全与锁优化
2012-11-29 16:17 1885转载自http://xussen.iteye.com/blo ...
相关推荐
- **功能**:用于将两个字符串连接成一个字符串。 - **语法**:`CONCAT(string1, string2)` - **示例**:`SELECT CONCAT('Hello', ' World') FROM dual;` - **字符串截取函数 SUBSTR** - **功能**:从指定位置...
这个类库通常会包含各种常用的工具类,如字符串处理、日期时间操作、文件系统交互、网络通信等模块。这些工具类可以大大简化常见的编程任务,避免重复造轮子,使开发者能够专注于业务逻辑。 1. 字符串处理:在...
- 分析:此题考查的是应聘者对于字符串的基本操作能力,如字符串的分割、查找等基本功能。需要理解题目的具体要求,并能够运用编程语言实现。 #### 2. 数据转换题目解析 题目要求进行数据转换,例如:“ʱҾתַˡ...
- 字符串类型通常使用`String`类。 - **字符处理**: - 在Java中,字符类型的变量可以存储单个字符,占用2个字节空间。 - 进行算术运算时,字符会被视为其对应的ASCII值。 - **数据类型转换**: - 自动类型...
- Python中的字符串是不可变对象,但可以通过切片操作来获取子字符串。 - 示例:`word = 'HelpA'; word[2:4]` 结果为 `'lp'`。 - 切片支持缺省参数,默认情况下,起始位置为0,结束位置为字符串长度。 - 示例:`...
【标题】中的“考试类精品--这个是自己日常改写和积累的python资料:本次资料提供大量的python面试的准备资料,包括常用的p.zip”表明这是一个针对Python编程语言的面试准备资源包,其中包含了作者个人整理和改写的...
- `GetConnectionString`:返回数据库连接字符串的方法。 - 封装的`getConn`方法返回一个已经配置好的`OleDbConnection`对象。 ### 总结 以上内容介绍了在ArcGIS开发中涉及到的一些关键技术和知识点,包括C#与...
- **定义**:通过定义常量来构建字符串,最终打印出“Hello World”。这种方式可以用于防止脚本被恶意解读或执行。 - 使用`define()`函数定义每个字符或部分字符为常量。 - 通过拼接这些常量来形成完整的“Hello ...
正则表达式是一种特殊的字符序列,用于以字符串的形式描述一定的规则,并通过该规则对字符串进行匹配和查找。它是计算机科学中用于文本处理的一种工具,广泛应用于编程、文本编辑、搜索引擎等领域。正则表达式入门...
- **字符串**:探讨字符串的表示方法及常用操作。 - **多维数组**:教授多维数组的定义及使用技巧。 - **第9章:编码风格** - **缩进和空白**:介绍良好的代码缩进习惯。 - **注释**:教授如何合理地添加注释以...
以上只是ASP.NET常用函数表中的一部分,实际的Word文档可能会包含更多细节和示例。学习并熟练掌握这些函数,对于提升ASP.NET开发技能,创建功能丰富的Web应用至关重要。同时,了解如何利用好这些工具,可以极大地...
正则表达式是一种用于模式匹配的强大工具,它使用单个字符串来描述、匹配一系列符合特定规则的字符串。尽管对于初学者来说可能有些难以理解和记忆,但通过不断实践和积累经验,你会逐渐熟练掌握其用法。在实际应用中...
- **字符串操作**:介绍字符串类的常用方法及其实现技巧。 - **线程**:讲解线程的基本概念、创建方式及线程间的同步问题。 - **GUI编程**:介绍Java Swing库的基础知识及GUI设计原则。 - **输入输出流**:探讨各种...
- **String**(字符串):字符序列的集合。 以上列举的只是Java及其相关领域的一部分常用英语词汇,希望这些基础知识能够帮助初学者更好地理解和掌握编程技巧。随着实践经验的积累,开发者会接触到更多的专业术语和...
6. **字符串处理**:如KMP算法、Manacher's Algorithm、Rabin-Karp字符串匹配等,常用于处理字符串相关的题目。 7. **数据结构**:包括链表、栈、队列、堆、树、图、哈希表等。合理的数据结构选择可以极大提升代码...
在S19文件转换的上下文中,查找字符串可能用于识别或提取文件中的关键信息,比如程序的入口点、标识符或者版本信息。这通常涉及对文件进行逐字节读取,然后应用某种搜索算法,比如线性搜索或更高效的算法如KMP...
### bomb18的详细解析 #### 一、概述 本文档将详细介绍bomb18的解析过程及相关的...- 多实践,多总结,积累经验。 - 最后,不要忘记及时记录自己的思考过程和发现的问题,这对于后续的学习和研究都是非常宝贵的资源。
- **字符串处理**:掌握字符串的反转算法,理解其背后的逻辑与实现细节。 - **树的遍历**:了解树的深度优先和广度优先遍历,特别是非递归实现树的后序遍历。 - **栈和队列**:利用两个栈实现队列的功能,理解栈...