2013-05-23 2 views
0

문자열 split-ted를 사전에 두 부분으로 나누고 0 번째와 1 번째 위치에 저장하고 싶습니다. 한다고 가정 값이 주파수 : (50) 다음 주파수가 0 번째 자리에있을 것입니다 50 사전 다음에서 1 위 될 것입니다 내가 자바 같은위한 솔루션을 원하는 같은문자열의 일부분을 사전에 자바로 저장하는 방법

data_dictionary = data.Split(',') 
    .ToDictionary(item => item.Split(':')[0], item => item.Split(':')[1]); 

에 대한 C# 코드, 어떤 도움 것이다 당신은 SUBSTR을해야합니다, 당신은 그들과 함께하기 위해 원하는대로,

frequency 
50 

을 그리고 : 크게

을 이해할 수있을

답변

0
String delimiter = ","; 
temp = str.split(delimiter); //str being your "long" string 

for (int i =0; i < temp.length ; i++){ 
    delimiter = ":"; 
    temp2 = temp[i].split(delimiter); 
    for(int k =0; k < temp2.length ; k++) 
     System.out.println(temp2[k]);  //here your code 
} 

인쇄됩니다 에 저장 INGS : temp2의 값이 ','에 의해 구분 된 각 문자열에 대한 대체되기 때문에

temp2[0] = frequency //just for this example 
temp2[1] = 50 

당신은, 내가 쓴 코드의 마지막 줄을 였는지를해야합니다.

+0

OP는 먼저','에 레코드로 분할 한 다음 각 레코드를':'에 분할합니다. –

+0

@MarkoTopolnik는 그것을 깨닫지 못했습니다. 편집 할 것입니다 .. –

0

죄송합니다, 클로저없이 Java는 C# 코드의 우아함에 접근 할 수 없습니다. 익명 클래스를 사용하여이를 근사값으로 구하는 것이 있지만 실제로 가치가있는 것은 아닙니다. 그래서 그냥 에 put 물건을 정기적으로 루프를 써주세요. String#split(regex)을 사용하여 문자열을 같은 방법으로 분리 할 수 ​​있습니다. 당신이 조금 폐쇄 - 억양이 그때는 아마 같은 함수의 서명이 무언가를 원한다면

+0

이 질문을 해결할 수 없습니다. arraylist를 사용하고 하위 문자열의 내용을 해당 arraylist에 추가 할 수 있는지 알고 싶습니다. 그렇지 않으면 어려운 것을 찾을 수 있기 때문에 어떤 예도 제공 할 수 있습니까? 그것을 이해하기 – Reshma

0
int delim = data.indexOf(':'); 

System.out.println(data.substring(0,delim)); //frequency 
System.out.println(data.substring(delim+1)); //50 
0

:

Pair의 구현은 독자에게 연습 문제로 남겨 그리고 당신 확신한다
interface KeyPairFunctor<T, K, V> { 
    Pair<K, V> getKeyValuePair(T item); 
} 

public static <T, K, V> Map<K, V> toMap(Iterable<T> items, KeyPairFunctor<T, K, V> functor) { 
    Map<K, V> m = new HashMap<K,V>(); 
    for (T item : items) { 
     Pair<K, V> e = functor.getKeyValuePair(item); 
     m.put(e.getKey(), e.getValue()); 
    } 
    return m; 
} 

public static void test() { 
    toMap(Arrays.asList(new String[] { "A:B" }), new KeyPairFunctor<String, String, String>() { 

     @Override 
     public Pair<String, String> getKeyValuePair(String item) { 
      String[] ss = item.split(":"); 
      return new Pair(ss[0], ss[1]); 
     }}); 
} 

, 분할 목록을 첫 번째 인수에 넣을 수있는 방법을 알 수 있습니다.

관련 문제