다음과 같은 문제점이 있습니다 : 문자열과 문자열을 포함하는 맵이 있습니다. 그지도를 인쇄 할 때 나는 "0-8166-3835-7"키가 있다는 것을 알 수 있습니다. 내가 그것을 얻기 위해 노력하고 있어요 때, 발견 일치하는 등의 반환하려면 아무것도, 없다 ... 내 코드 :Java Map Matching Key
//Open a stream to read from file with isbn's AND titles
Scanner IsbnTitle = new Scanner(new FileReader("C:/Users/Proskopos/Documents/NetBeansProjects/ReadUrl/IsbnTitle.txt"));
//Create a Map to save both ISBN's and Titles
Map <String,String> IsbnTitleMap = new HashMap();
while(IsbnTitle.hasNext()){
String recordIsbnTitle = IsbnTitle.nextLine();
UrlFunctions.AddToMap(Recognised , recordIsbnTitle, IsbnTitleMap);
}
.....
.....
Set IsbnSet = new HashSet();
while (IsbnFile.hasNextLine()) {
String isbn = IsbnFile.nextLine();
IsbnSet.add(isbn);
}
//Create an Iterator for IsbnSet
Iterator IsbnIt =IsbnSet.iterator();
String suffix = IsbnIt.next().toString();
String OPACIALtitle = UrlFunctions.GetOpacTitle(suffix, IsbnTitleMap);
위의 코드는 MAP에 대한 주에있는 유일한 부분이며, 다음과 같은 기능이 있습니다 내가 전화 :
static String GetOpacTitle(String opIsbn, Map IsbnTitle) {
String OpacTitle = null;
String isbn = opIsbn;
Map isbnMap = IsbnTitle;
System.out.println(isbn);
if (isbnMap.containsKey(isbn)){
System.out.println("AAAAAAAAAAAAAAAA");
}
//String tade = isbnMap.get(isbn).toString();
//System.out.println("*************" + tade);
return OpacTitle;
}
static void AddToMap(int Recognise, String recordIsbnfollowed, Map IsbnfollowedMap) {
Map isbnsth = IsbnfollowedMap;
String records = recordIsbnfollowed;
int recs= Recognise;
if (recs == 0 || recs == 3) {
String isbn = records.substring(0, 10);
String title = records.substring(10);
isbnsth.put(isbn, title);
// System.out.println(isbn);
}else if (recs == 1) {
String isbn = records.substring(0, 14);
String title = records.substring(14);
isbnsth.put(isbn, title);
// System.out.println(isbn);
}
}
내가 어디에 문제가 이해하지 못할 .. 아마 접미사의 인코딩과 같은 무언가 세트에서 cames, 그리고지도에서 키? 그들은 둘 다 문자열입니다 .. 그렇게 생각하지 않아 .. !!! 그래서? 도울 수 있니?
편집 : 코드를 읽기가 어려울 경우 trully 죄송합니다 : \ 귀하의 조언을 따를 것입니다! 하지만 다른 사람이 ... 해결책은 무엇 브랜드 아래 말했다 같은 문제가있는 경우에 (내가 다시 포스트를) 당신은 아마 당신이 양식을 파일을 읽고 저장하는 문자열의 일부 공백이
그냥 문제를 확인 내 댓글에 추가 할 모든지도에서. 이 경우 Map에 값을 저장하기 전에 String.trim()을 사용하고 동일한 문자열을 쿼리하기 전에 String.trim()을 사용하십시오. - 브래드 시간 전
코드가 IsbnFile의 출처가 아님 ... 일반적인 Java 명명 규칙을 따르면 코드가 훨씬 읽기 쉬울 것입니다. –
Jon이 말한 것처럼 : 소문자로 변수를 작성하십시오. 실수로 잘못 코딩되지 않습니다. -/읽기가 매우 혼란 스럽습니다. 메서드 이름과 동일하지만 소문자 여야합니다. 실제로 인코딩에 문제가있을 수 있습니다. 키가 비슷한 방법으로 만들어 졌는지 확인하십시오 (UTF-8과 Windows 인코딩 파일 중 하나를 읽지 않음). –
파일을 읽고 맵에 저장하는 문자열에 공백이있을 수 있습니다. 이 경우 Map에 값을 저장하기 전에 String.trim()을 사용하고 동일한 문자열을 쿼리하기 전에 String.trim()을 사용하십시오. – Brad