代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
Scala
】
Scala字符串处理常用函数
作者:
信和
/ 发布于
2016/12/13
/
1262
Scala字符串处理常用函数
package com.agiers.util import java.io._ import java.nio.channels._ import java.nio._ import java.net.{ URLEncoder, URLDecoder } import com.spreada.utils.chinese.ZHConverter import scala.collection.mutable.HashMap case class AgiString(value : String) { private val base64encoder = new sun.misc.BASE64Encoder private val base64decoder = new sun.misc.BASE64Decoder private val desRegister = HashMap[String, Des]() private val systemEncode = System.getProperty("file.encoding") private def trueIndexOf(index : Int) : Int = { val length = value.length if (index < 0) index + length else if (index > length) index - length else index } // 默认的urlencode按照UTF8 def encode : String = URLEncoder.encode(value, "UTF8") def encode(enc : String) : String = URLEncoder.encode(value, enc) def decode : String = URLDecoder.decode(value, "UTF8") def decode(enc : String) : String = URLDecoder.decode(value, enc) // 根据系统默认的编码进行encode,用于gui开发使用 def encodeSys : String = URLEncoder.encode(value, systemEncode) def decodeSys : String = URLDecoder.decode(value, systemEncode) def base64encode : String = base64encoder.encode(value.getBytes) def base64decode : String = new String(base64decoder.decodeBuffer(value)) // 简繁转换 // 基于ZhConverter:http://code.google.com/p/java-zhconverter/ def toTraditional : String = ZHConverter.convert(value, ZHConverter.TRADITIONAL) def toSimplified : String = ZHConverter.convert(value, ZHConverter.SIMPLIFIED) // 获取DesUtil实例 private def getDesUtil(key : String) : Des = { if (!desRegister.contains(key)) desRegister(key) = new Des(key) desRegister(key) } // Des加密 def desEncrypt(key : String) : String = { new String(getDesUtil(key).DesEncrypt(value.getBytes, 1)) } def desEncryptBase64(key : String) : String = { base64encoder.encode(getDesUtil(key).DesEncrypt(value.getBytes, 1)) } // Des解密 def desDecrypt(key : String) : String = new String(getDesUtil(key).DesEncrypt(new String(value.getBytes, "utf8").getBytes, 0)) def desDecryptBase64(key : String) : String = new String(getDesUtil(key).DesEncrypt(base64decoder.decodeBuffer(value), 0)) // 驼峰命名 def toCamelCase : String = toCamelCase(true) def toCamelCase(isFirstUpper : Boolean = true) : String = { val b = new StringBuilder var toUpperPos = -1 for (i <- 0.to(value.length - 1)) { if (!value(i).isLetterOrDigit) toUpperPos = i + 1 else b.append(if (toUpperPos == i) value(i).toUpperCase else value(i)) } val first = b.charAt(0) if (isFirstUpper) if (!first.isUpperCase) b.setCharAt(0, first.toUpperCase) else if (!first.isLowerCase) b.setCharAt(0, first.toLowerCase) b.mkString } def toUnCamcelCase(implicit sp : String = "_") : String = { val b = new StringBuilder var pos = -1 value.foreach { char => pos += 1 if (char.isLetterOrDigit) { if (char.isUpperCase) (if (pos == 0) b else b.append(sp)).append(char.toLowerCase) else b.append(char) } } b.mkString } // 指定位置大写 def toUpperCase(index : Int) : String = { val trueIndex = trueIndexOf(index) val char = value.charAt(trueIndex) if (!char.isUpper) { value.updated(trueIndex, char.toUpperCase).mkString } else value } // 指定位置小写 def toLowerCase(index : Int) : String = { val trueIndex = trueIndexOf(index) val char = value.charAt(trueIndex) if (!char.isLower) { value.updated(trueIndex, char.toLowerCase).mkString } else value } def dump(file : File) : Boolean = { try { val opChannel = new FileOutputStream(file).getChannel opChannel.write(ByteBuffer.wrap(value.getBytes)) opChannel.close true } catch { case _ => System.err.println("Can't dump I/O error!") false } } def dump(name : String) : Boolean = dump(new File(name)) lazy private val md5handle = java.security.MessageDigest.getInstance("MD5") private val hexDigits = Array[Char]('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f') def md5 : String = { val encrypt = md5handle.digest(value.getBytes) val b = new StringBuilder(32) for (i <- 0.to(15)) { b.append(hexDigits(encrypt(i) >>> 4 & 0xf)).append(hexDigits(encrypt(i) & 0xf)) } b.mkString } def jsonDecode : JsValue = JsValue.fromString(value) def toEventName : String = { val name = value.toLowerCase() if (name.indexOf("on") == 0) name.replace("on", "") else name } } Base.scala package com.agiers.mvc import com.agiers.util._ import org.apache.log4j.Logger trait Base { // String extends implicit def AgiStringExtend(value: String) = AgiString(value) def log = Logger.getLogger(getClass) def currentTime(isMillis: Boolean): Long = { if (isMillis) System.currentTimeMillis else currentTime } def currentTime(): Long = { System.currentTimeMillis } def random(max: Int): Long = { (Math.random * (max + 1)).toLong // (randomSeed.nextInt >>> 1) & max } def random(min: Int, max: Int): Long = { min + random(max - min) } }
试试其它关键字
同语言下
.
Scala正则判断替换
.
spark 提交
.
判断字符串是否能转换为数字
.
Scala字符串处理常用函数
.
Scala调用Java类
.
返回去掉l头两个元素的新列表
.
通过索引获取列表值
.
用“:::”叠加创建新列表
.
用字符串创建列表
.
创建空列表
可能有用的
.
Scala正则判断替换
.
spark 提交
.
判断字符串是否能转换为数字
.
Scala字符串处理常用函数
.
Scala调用Java类
.
返回去掉l头两个元素的新列表
.
通过索引获取列表值
.
用“:::”叠加创建新列表
.
用字符串创建列表
.
创建空列表
信和
贡献的其它代码
(
8
)
.
根据一张表的内容更新另一张表的某列
.
[]、List、Array、ArrayList 区别及应用
.
App相关
.
以及去除List中的重复元素
.
Scala字符串处理常用函数
.
Repeater Order双向排序
.
为任何与选择器相匹配的元素设置事件处理程序
.
jQuery小技巧- 检测浏览器
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3