2013-12-21 4 views
2

분할 값에 영향을주지 않고 분할 방법을 사용할 수 있습니다,하지만 난이 코드를하려고 할 때 문제는 부분, 어쨌든 내가 배열에서 단어를 제거하지 않고 그것을 나눌 수 있습니까?어떻게 내가 문자열 배열을 분할하려고했다

:

Dim String1 As String= "A|B|C" 

을 분할을 사용하여 :

Dim str As String() = Split(String1, "|") 

이 결과는됩니다

A B의 C

하지만없이

| , 나는 문자열을 분할하지만 | 혼자.

제발 도와주세요 ..

+3

A | B | C에서 원하는 결과는 무엇입니까? 캐릭터를 왼쪽이나 오른쪽 또는 양쪽 모두에 보관하여 캐릭터를 이중으로 만들려면 어디에서합니까? –

+0

@TimSchmelter 그가이 결과를 원한다고 생각합니다. "A", "|", "B", "|", "C"' – WAKU

+1

당신은 이미 좋은 시작이었습니다. 그러나 귀하의 질문은 문제의 일부라고 생각하며 쉬운 해결책이 있습니다. 위의 내용은 해킹과 같을 것입니다. 원래의 문제, 즉 입력 및 예상 결과를 설명하여보다 나은 해결책을 제안 할 수 있습니다. 나는 거의 긍정적이다. 적어도 하나는 존재한다. – Neolisk

답변

2

당신이 정규식을 사용하여 소위 positive look-behind :

긍정적 예측 (...) Q (= U?)하지 않고, 노소 뒤에 AQ 일치 경기의 일부가됩니다.

그래서, 귀하의 경우 (?<=[|]) 일 분할에 일치로 간주 각 |을하지만, 값을 계산할 때 마술 고려하지 않습니다. 그래서 코드는 다음과 같습니다

Dim str as String = "A|B|C" 
Dim r = Regex.Split(str, "(?<=[|])") 

"A|", "B|"C로 될 것이다.

+0

+1. 이것은 Regex에 관해 내가 전에 몰랐던 것이다. – Neolisk

+0

내가 Systems.Text를 가져올 필요가 발견.RegularExpressions –

+0

코드에서 분리 표시를 바꿀 때 한 가지 문제가 생겼습니다. "|" "토 런트"와 같은 것으로 출력되면 혼란스럽고 프로그램은 쓰레기 에 의해 ". 토 런트"라는 단어를 나눕니다. Tr y. t O R R E N t TR Y2. t 오 R R 전자 N 내가 텍스트 상자에 게시 t : Try.torrentTry2.torrent <어떤 도움? –

0
Dim ApplyTo As String = "Test1,Test2" 
asd = ApplyTo.Split(",") 
Console.WriteLine(asd(0)) 'Prints "Test1" 
Console.WriteLine(asd(1)) 'Prints "Test2" 
+0

감사합니다. 코드에서 출력을 가져오고 싶습니다. asd 0) = "Test1" 그리고 asd (1) = "," 및 asd (2) = "Test2" 이 문자열을 분할하고 싶지만 쉼표는 그대로두기를 원합니다. –

관련 문제