2014-06-06 6 views
-1

자바 1.4에서 아래 코드를 변경해야합니다. 누구든지 그렇게 할 수 있습니까?자바 1.4에서 문자열 목록 코드를 변경

나는 점점 오전 주요 문제는 (문자열 STR : splitStringList)에 대한 목록의 문자열 유형

라인 목록 splitStringList = 새로운 ArrayList를()

및 라인

을 변환하는 것입니다 생성하는 java 1.4에 대한 오류

public class Demo2ReferDemo1 { 
    public static void main (String [] args) { 
      String inputStr = "00400 - 00479,00100 - 0022200su,00100 - 00228,00100 - 00228,00400 - 00479,lab661,"; 

      StringBuffer sb = new StringBuffer (inputStr); 
      List<String> splitStringList = new ArrayList<String>(); 
      boolean insideDoubleQuotes = false; 
      StringBuffer field = new StringBuffer(); 

      for (int i=0; i < sb.length(); i++) { 
       if (sb.charAt (i) == '"' && !insideDoubleQuotes) { 
        insideDoubleQuotes = true; 
       } else if (sb.charAt(i) == '"' && insideDoubleQuotes) { 
        insideDoubleQuotes = false; 
        splitStringList.add (field.toString().trim()); 
        field.setLength(0); 
       } else if (sb.charAt(i) == ',' && !insideDoubleQuotes) { 
        // ignore the comma after double quotes. 
        if (field.length() > 0) { 
         splitStringList.add (field.toString().trim()); 
        } 
        // clear the field for next word 
        field.setLength(0); 
       } else { 
        field.append (sb.charAt(i)); 
       } 
      } 
      for (String str: splitStringList) { 
       System.out.println ("Split fields: "+str); 
      } 
     } 
     } 
+4

당신이 실제로 요구하는지, 또는 지금까지 시도했다 매우 불분명하다. 또한 Java 1.4를 사용해야하는 이유는 무엇입니까? 자바 1.5는 거의 10 살 *입니다. 업데이트 할 시간인가? –

+0

코드를 컴파일하려고 할 때 java 1.4 컴파일러가보고 한 오류는 무엇입니까? – MrSmith42

답변

1

Java 1.4 호환 형식의 클래스가 있습니다. 변경 사항은 다음과 같습니다 제네릭없이

  • ArrayList를 선언 <>
  • ArrayList에 나중에 문자열로 변환 할 수있는 개체 참조를 반환하기 때문에 루프가 대신 문자열 변수의 개체 변수로 작동 "에 대한"마지막. 다음과 같이 클래스 코드는 다음과 같습니다 이 import java.util.ArrayList; import java.util.List; public class Demo2ReferDemo1 { public static void main(String[] args) { String inputStr = "00400 - 00479,00100 - 0022200su,00100 - 00228,00100 - 00228,00400 - 00479,lab661,"; StringBuffer sb = new StringBuffer(inputStr); List splitStringList = new ArrayList(); boolean insideDoubleQuotes = false; StringBuffer field = new StringBuffer(); for (int i = 0; i < sb.length(); i++) { if (sb.charAt(i) == '"' && !insideDoubleQuotes) { insideDoubleQuotes = true; } else if (sb.charAt(i) == '"' && insideDoubleQuotes) { insideDoubleQuotes = false; splitStringList.add(field.toString().trim()); field.setLength(0); } else if (sb.charAt(i) == ',' && !insideDoubleQuotes) { // ignore the comma after double quotes. if (field.length() > 0) { splitStringList.add(field.toString().trim()); } // clear the field for next word field.setLength(0); } else { field.append(sb.charAt(i)); } } for (Object str : splitStringList) { System.out.println("Split fields: " + str); } } }
1

JAVA 1.4에는 제네릭이 포함되어 있지 않으므로 List<String> splitStringList = new ArrayList<String>();은 유효하지 않습니다. . List splitStringList = new ArrayList();

변경 그것은 또한

for (String str: splitStringList) { 
     System.out.println ("Split fields: "+str); 
} 

문제가 발생할 수 있음을 확인할 수 있습니다 -이 구문은 년후, 당신은 다시 떨어질해야하므로, 중 자바 5까지 도입 T 다른 루프 중 하나 (예 : for 루프)와 List 멤버를 캐스팅합니다. String