2016-07-20 2 views
2

텍스트 블록을 2 차원 배열로 분할하려고합니다. 줄을 단어 배열로 분할하는 방법을 알고 여러 줄을 여러 줄로 배열하는 방법을 알고 있지만 동시에 두 줄을 모두하고 싶습니다.2 차원 배열로 텍스트 분할

((팀이,있다, 좋은), (짐이 될 것입니다 좋은
짐이 평균이다 :

예를 들어,이 원하는 , 의미))

S 오 멀리, 난에 예를 들어 문자열을 만들려면

Str1.Split(new String() {Environment.NewLine}, StringSplitOptions.None) 

을 사용할 수있게되었습니다

(팀이 좋은, 짐은 평균입니다) 그리고 Str1.Split을 사용했습니다

(팀이며, 좋은)

"Tim is nice"를 변환하는

또한 내 코드가 잘못된 구문이거나 그 점을 알고 있다면 저는 주로 Python 프로그래머입니다.

은 ((팀이,있다, 좋은), (짐,)을 의미한다)

가변 배열 또는 배열의 배열입니다 :

+0

/그것이 의미입니까? 긴 텍스트에 개행 문자가 있습니까? – Plutonix

+0

@Plutonix 개행 문자가있는 문자열 변수에 저장됩니다. Str1.Split (new String() {Environment.NewLine}, StringSplitOptions.None) – computhomas

+0

시작 지점이 무엇인지 알 수 있도록 질문 ([편집])에 추가하십시오. – Plutonix

답변

2

이 2 차원 배열을 밤은. 각 줄/문장의 단어 수가 같지 않을 수 있으므로 더 나은 선택입니다. 귀하의 예를 들어, 각 "라인"을 보유하는 2의 배열을 갖습니다, 그리고 각각의 배열은 많은 단어가 배열되어 있습니다.

Dim original = "Tim is nice" & Environment.NewLine & "Jim is very mean" 

Dim lines = original.Split(New String() {Environment.NewLine.ToString}, 
          StringSplitOptions.RemoveEmptyEntries) 

Dim results(lines.Count - 1)() As String 
For n As Int32 = 0 To lines.Count - 1 
    ' store array of words to results(n) 
    results(n) = lines(n).Split(" "c) 
Next 
' glue a line back together and show it 
Console.WriteLine(String.Join(" ", results(1))) 

results(0)results(1)는 짐의 말을 개최의 팀 단어를 개최한다. 합니다 (를 WriteLine의) 결과 :

짐은 매우

첫 번째 블록이 저장되는 방법
+0

그러면 결과 (0,2)가 "좋을"까? Count와 Length 함수의 차이점은 무엇입니까? – computhomas

+0

'results (0,2)'는 2D 배열 인 경우 작동하며'results (0) (2)'는''nice "'가됩니다. 길이와 백작은 실제 차이가 없습니다. Count는 배열 참조가 다른 현대 컬렉션과 구문 적으로 일치하도록 허용하는 확장 메소드입니다. – Plutonix

+0

알았어, 고마워,이게 내가 바라던거야. 부수적으로, 내가 작업하고있는 데이터는 항상 각 줄마다 동일한 양의 단어를 갖게됩니다. 톱니 모양의 배열 대신 2 차원 배열을 사용하는 데 도움이 될까요? – computhomas

관련 문제