博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
中英文字符的截取
阅读量:6333 次
发布时间:2019-06-22

本文共 1257 字,大约阅读时间需要 4 分钟。

代码
using
 System.Text;
namespace
 CSTest
{
    
class
 StrOp
    {
        
///
 
<summary>
    
        
///
 得到字符串的长度,一个汉字算2个字符    
        
///
 
</summary>
    
        
///
 
<param name="str">
字符串
</param>
    
        
///
 
<returns>
返回字符串长度
</returns>
    
        
public
 
static
 
int
 GetLength(
string
 str)
        {
            
if
 (str.Length 
==
 
0
return
 
0
;
            ASCIIEncoding ascii 
=
 
new
 ASCIIEncoding();
            
int
 tempLen 
=
 
0
;
            
byte
[] s 
=
 ascii.GetBytes(str);
            
for
 (
int
 i 
=
 
0
; i 
<
 s.Length; i
++
)
            {
                
if
 ((
int
)s[i] 
==
 
63
)
                {
                    tempLen 
+=
 
2
;
                }
                
else
                {
                    tempLen 
+=
 
1
;
                }
            }
            
return
 tempLen;
        }
        
public
 
static
 
string
 CutString(
string
 str,
int
 len)
        {
            
if
 (str.Length 
==
 
0
return
 str;
            ASCIIEncoding ascii 
=
 
new
 ASCIIEncoding();
            
int
 tempLen 
=
 
0
;
            
byte
[] s 
=
 ascii.GetBytes(str);
            
for
 (
int
 i 
=
 
0
; i 
<
 s.Length; i
++
)
            {
                
if
 ((
int
)s[i] 
==
 
63
)
                {
                    tempLen 
+=
 
2
;
                }
                
else
                {
                    tempLen 
+=
 
1
;
                }
                
if
 (tempLen 
>
 len) 
                {
                    tempLen 
=
 i;
                    
break
;
                }
            }
            str 
=
 str.Substring(
0
, tempLen);
            
return
 str;
        } 
    }
}

改写别人的方法,得到CutString,初步测试,满足要求

测试如下:

 

代码
using
 System;
namespace
 CSTest
{
    
class
 Program
    {
        
static
 
void
 Main(
string
[] args)
        {
            
string
 strText 
=
 
"
12wd中国人中國人
"
;
            Console.WriteLine(
"
调用GetLength方法:
"
 
+
            StrOp.GetLength(strText));
            Console.WriteLine(strText.Length);
            Console.WriteLine(StrOp.CutString(strText, 
15
));
            Console.ReadKey();
        }
    }
}

 

 测试结果:

转载于:https://www.cnblogs.com/wwwzzg168/p/3569946.html

你可能感兴趣的文章
ubuntu关闭自动更新、打开 ubuntu 的 apport 崩溃检测报告功能
查看>>
vmlinux,zImage,bzImage,vmlinuz,uImage,关系
查看>>
会议管理拖动效果的页面制作1
查看>>
linux grep、find 命令详解
查看>>
Vuex详解笔记2
查看>>
[转载]java 中finally关键字的使用
查看>>
iOS 定时器 NSTimer、CADisplayLink、GCD3种方式的实现
查看>>
用JavaScript探测页面上的广告是否被AdBlock屏蔽了的方法
查看>>
CSS3制作下拉菜单
查看>>
ArcEngine编辑功能(三)
查看>>
C#+GDAL读取影像(1)
查看>>
建设应用集群
查看>>
JAVA多线程和并发基础面试问答(转载)
查看>>
git 忽略权限记录一下
查看>>
MFCc窗口背景贴图
查看>>
条款5:了解C++默默编写并调用哪些函数
查看>>
python int str
查看>>
自己造容器List
查看>>
最小生成树
查看>>
C#开发学习——存储过程
查看>>