using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
}
private static bool IsHalfKana(string targetStr)
{
string halfKanaList = "ー゙゚ァィゥェォャュョッアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲン";
foreach (char strItem in targetStr)
{
if (!halfKanaList.Contains(strItem.ToString()))
{
return false;
}
}
return true;
}
private static string ToHalfKana(string str)
{
string strFullKanaListPart1 = "アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲンーャュョァィゥェォッ゛゜";
string strFullKanaListPart2 = "ヴ,ガ,ギ,グ,ゲ,ゴ,ザ,ジ,ズ,ゼ,ゾ,ダ,ヂ,ヅ,デ,ド,バ,ビ,ブ,ベ,ボ,パ,ピ,プ,ペ,ポ";
string strHarfKanaPart1 = "ヴ,ガ,ギ,グ,ゲ,ゴ,ザ,ジ,ズ,ゼ,ゾ,ダ,ヂ,ヅ,デ,ド,バ,ビ,ブ,ベ,ボ,パ,ピ,プ,ペ,ポ";
string strHalfKanaPart2 = "アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲンーャュョァィゥェォッ゙゚";
StringBuilder sb = new StringBuilder();
foreach (char charInput in str)
{
if (strFullKanaListPart1.Contains(charInput.ToString()))
{
int index = strFullKanaListPart1.IndexOf(charInput);
sb.Append(strHalfKanaPart2[index]);
}
else if (strFullKanaListPart2.Contains(charInput.ToString()))
{
string[] arrFullKaka = strFullKanaListPart2.Split(',');
string[] arrHalfKana = strHarfKanaPart1.Split(',');
int index = Array.IndexOf(arrFullKaka, charInput.ToString());
sb.Append(arrHalfKana[index]);
}
else
{
sb.Append(charInput);
}
}
return sb.ToString();
}
}
}
第一个方法为判断是否为日文半角;第二个方法把日文全角转化为半角