您的位置:首页 > 编程语言 > C#

截取字符串方法(C# C/S)

2012-06-20 18:49 239 查看
/// <summary>

/// 指定バイト数文字切取長さ

/// </summary>

/// <param name="PMoJi">文字列</param>

/// <param name="PLength">バイト数</param>

/// <returns>指定バイト文字</returns>

public static string GetMoJiKiriTori(string PMoJi, int PLength) {

//日本語ファイル名が文字化けする

Encoding encoding = Encoding.GetEncoding(932);

StringBuilder sb = new StringBuilder();

//切取バイト数

int totalLength = 0;

foreach (char MoJiChar in PMoJi) {

//指定した文字配列から文字のセットをエンコードすることによって生成されるバイト数を計算します

int size = encoding.GetByteCount(new char[] { MoJiChar });

//切取バイト数>指定バイト数の場合、Breakを実行する。

if (totalLength + size > PLength) {

break;

}

//指定した文字配列を追加する

sb.Append(MoJiChar);

//切取バイト数増す

totalLength += size;

}

////指定バイト文字を返します

return sb.ToString();

}

/// <summary>

/// バイト対応半角全角判定処理

/// 引数で渡された文字列の指定改位置をはさんで全角コードが

/// あったら、その直前位置を引数に設定する。なければ何もしない。

/// </summary>

/// <param name="PMoji">文字列</param>

/// <param name="PLength">バイト数</param>

/// <returns> 正常処理なら「true」を、異常終了なら「false」を返却する。 </returns>

public static bool GetIsMBHD(string PMoji, int PLength) {

//日本語ファイル名が文字化けする

Encoding encoding = Encoding.GetEncoding(932);

//切取バイト数

int totalLength = 0;

foreach (char MoJiChar in PMoji) {

//指定した文字配列から文字のセットをエンコードすることによって生成されるバイト数を計算します

int size = encoding.GetByteCount(new char[] { MoJiChar });

//切取バイト数=指定バイト数の場合、正常処理なら「true」を実行する。

if (totalLength + size == PLength) {

return true;

}

//切取バイト数増す

totalLength += size;

}

return false;

}

/// <summary>

/// 文字列の部分文字列または動的配列のセグメントを返します

/// </summary>

/// <param name="PMoji">>文字列</param>

/// <param name="PStartLength">開始文字列バイト数</param>

/// <param name="PLength">切取バイト数</param>

/// <returns>指定バイト文字</returns>

public static string GetCopyString(string PMoji, int PStartLength,int PLength) {

//日本語ファイル名が文字化けする

Encoding encoding = Encoding.GetEncoding(932);

StringBuilder sb = new StringBuilder();

//切取バイト数

int totalLength = 0;

foreach (char MoJiChar in PMoji) {

//指定した文字配列から文字のセットをエンコードすることによって生成されるバイト数を計算します

int size = encoding.GetByteCount(new char[] { MoJiChar });

//切取バイト数>=指定バイト数の場合、指定した文字配列を追加する

if (totalLength + size >= PStartLength) {

PLength = PLength - size;

if (PLength >= 0) {

sb.Append(MoJiChar);

}

}

//切取バイト数増す

totalLength += size;

}

//指定バイト文字を返します

return sb.ToString();

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: