计算字符串长度(关于日文字符)

需复

需复

2016-02-19 21:46

关注图老师设计创意栏目可以让大家能更好的了解电脑,知道有关于电脑的更多有趣教程,今天给大家分享计算字符串长度(关于日文字符)教程,希望对大家能有一点小小的帮助。

  项目要求: 计算一个字符串的长度(对日项目VB.NET)

  以前的代码找不到了只能自己写一下了(找到了别人的代码觉得有点麻烦,没用)

  String.prototype.isBytes = function() {
   'var cArr = this.match(/[^x00-xff|uff61-uff9f]/ig);
  'return (cArr==null ? true : false);}
  上面这段代码是我在JAVA项目里找的,开始没看明白
  朋友老纪这时发给我一段
          'public static boolean checkAscii(char ch) {
          '  // Ascii文字かどうか判断し、返り値とする
          '  return ch = 0x0000 && ch = 0x007f;
          ' }

          'public static boolean checkHANKAKU_KANA(char ch) {
          '  // 半角カタカナかどうか判断し、返り値とする。
          '  return 0xff61 = ch && ch = 0xff9f;
          ' }
  这时才知道[^x00-xff|uff61-uff9f]这个正则表达式是匹配英文字符和半角日文之外的字符的
  注意里面的这个符号^取反的意思[x00-xff|uff61-uff9f]里面没有没^就是匹配英文字符和半角日文
  加上这个^就是匹配英文字符和半角日文之外的字符
  下面这个是我写的VB.NET的方法计算字符串的长度
   Public Function GetStringLength(ByVal data As String) As Integer
          Dim i As Integer = 0
          Dim len As Integer = 0
          Dim cc As String = ""
          Dim charRegex As New Regex("[x00-xff|uff61-uff9f]")
          For i = 0 To data.Length - 1
              '文字の取得を行う
              cc = data.Substring(i, 1)
              If charRegex.IsMatch(cc) Then
                  len = len + 1
              Else
                  len = len + 2
              End If
          Next i
          Return len
  End Function
  这样就可以计算出字符串的长度了(有不对的地方请指出)

  后来朋友又发给我了一个段代码,如下
  Public Function GetByte(ByVal p_s) As Integer
          Dim bySource() As Byte
          Dim byEncoded() As Byte
          Dim destEncoding As Encoding

          ' 文字列をバイト配列に変換
          bySource = Encoding.Unicode.GetBytes(p_s)

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

          ' エンコーディングを取得 (シフトJISコードページ)
          destEncoding = destEncoding.GetEncoding("Shift_JIS")

          ' コードページをUnicodeからシフトJISに変換
          byEncoded = Encoding.Convert(Encoding.Unicode, destEncoding, bySource)

          Return byEncoded.Length

      End Function

  Public Function ChkByteLength(ByVal p_strVal As String, ByVal p_strParam As String, ByVal p_nMaxLength As Integer, Optional ByVal p_nMinLength As Integer = 0) As Boolean
          If p_nMinLength 0 Then
              If GetByte(p_strVal) p_nMaxLength Or GetByte(p_strVal) p_nMinLength Then
                  m_aMsg.Add(GetLine() & clsMessage.GetMessage("E018", p_strParam, CStr(p_nMinLength), CStr(p_nMaxLength)))
                  Return False
              End If
          Else
              If GetByte(p_strVal) p_nMaxLength Then
                  m_aMsg.Add(GetLine() & clsMessage.GetMessage("E009", p_strParam, CStr(p_nMaxLength)))
                  Return False
              End If

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

          End If
          Return True
      End Function
  这两个方法没有试,有兴趣的可以试试

  http://www.cnblogs.com/lost0/archive/2006/11/29/576040.html

展开更多 50%)
分享

猜你喜欢

计算字符串长度(关于日文字符)

编程语言 网络编程
计算字符串长度(关于日文字符)

测字符串长度函数

ASP
测字符串长度函数

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

JS版获取字符串真实长度和取固定长度的字符串函数

Web开发
JS版获取字符串真实长度和取固定长度的字符串函数

检测含有中文字符串的实际长度

Web开发
检测含有中文字符串的实际长度

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

截取实际长度字符串并用空格替换

Web开发
截取实际长度字符串并用空格替换

字符串分割

编程语言 网络编程
字符串分割

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

微软cortana小娜"语音拼读查单词"功能演示视频

微软cortana小娜"语音拼读查单词"功能演示视频

和你分开后、我开始讨厌阿尔卑斯的味道.

和你分开后、我开始讨厌阿尔卑斯的味道.
下拉加载更多内容 ↓