공백으로 분할하여 단어 사전에 저장할 문자열이 있습니다 (간단 함). 그러나 나는 또한 단어의 색인과 길이를 원한다.공백으로 긴 문자열을 분할하고 각 단어의 모든 색인을 저장하십시오.
지금까지, 나는 단지 그들이 발견 된 순서대로 단어의 사전과 ....이
private Dictionary<int,String> makeDictionary(String ASCII)
{
string[] t = ASCII.Split(new[] { ' ' },
StringSplitOptions.RemoveEmptyEntries);
Dictionary<int, string> aDictionary = new Dictionary<int, string>();
for (int i = 0; i < t.Length; i++)
{
t[i] = stripSymbolsFromString(t[i]);
if (!aDictionary.ContainsValue(t[i]) && t[i] != "")
{
aDictionary.Add(i, t[i]);
}
}
return aDictionary;
}
합니까 누구 인덱스를 유지하면서 내가 .Split()를 사용하는 방법에 대해 어떤 생각을 가지고 연결의 다른 기술을 사용해야합니까? 아래에 누군가가 게시, Regex를 사용하여 일치하는 색인을 제공합니다.
편집 : 길이가 필요하지 않습니다. 누군가 지적했듯이, 나는 그 문자열에서 얻을 수 있습니다. 나는 그 단어의 시작 색인이 필요할 것이다.
EDIT2 : 나는 중복 된 단어를 무시합니다.
EDIT3
:로렘 입숨 단순히 더미 인쇄 텍스트와 산업을 조판 수 있습니다 : 여기 내가 사용하는 것입니다 문자열의 예입니다. Lorem Ipsum은 알려지지 않은 프린터가 유형의 조리실을 사용하고 이 형식 표본을 만들기 위해 뒤섞어 놓은 1500 년대 이래로 의 업계 표준 더미 텍스트였습니다. 그것은 단지 5 세기뿐만 아니라 전자 조판에 도약, 본질적으로 변하지 남아있다. 그것은 Lorem Ipsum 구절을 포함하는 Letraset 시트의 출시와 함께 1960 년대에 대중화되었고, 최근에는 Lorem Ipsum의 버전을 포함한 Aldus PageMaker 과 같은 데스크탑 출판 소프트웨어를 사용하여 과 더 최근에 대중화되었습니다.
그래서 처음 몇 요소 것
[0] => Lorum,
[6] => Ipsum 제품,
가[12] =>
인 숫자 0,6,12는 문자열 내의 단어의 원래 색인입니다.
를 형성하기 위해
words
을 처리 할 수있는 인덱스 및 길이 나뉘어져 ..? 또한 문자열 예제를 붙여 넣을 수 있다면 분할하려고합니다. – MethodMan원래 문자열의 위치와 같은 인덱스를 의미합니까? 또는 분할 배열 내의 위치? 또한 사전이 거꾸로 된 것 같습니다. 그것은 모든 반복에서'.ContainsValue'를 사용할 필요가없는 키를 string으로 사용해야합니다. –
'Matt '에 동의합니다. 사전은'Dictionary aDictionary = new Dictionary ();' –
MethodMan