[JAVA]プログラマー第一段階:ソウルで金の婿を探す
3000 ワード
https://programmers.co.kr/learn/courses/30/lessons/12919
質問する
String型配列seoulの要素でKimの位置xを見つけ,金婿はxでStringの関数を返し,解を完了する.seoulではKimは一度しか現れず,誤った値は入力されなかった.
せいげんじょうけん
に答える
import java.util.ArrayList;
public class Soultion1 {
public String solution(String[] seoul) {
String answer = null;
String lname = "Kim";
ArrayList<String> list = new ArrayList<String>();
for(String s : seoul) {
list.add(s);
}
for(int i=0; i<seoul.length; i++) {
if(lname == list.get(i).toString()) {
answer += "김서방은 "+i+"에 있다";
}
}
return answer;
}
}
eclipseではよく実行されましたが、プログラマーでは通過しませんでした.理由は何ですか.問題を発見!
1)文字列間の比較には,equalsメソッドを用いるべきである.
Pythonやjsとは異なり、==を使用して文字列の比較はできません.したがって、==の場合、アドレス値が比較されます.
整理する
Stringは、上に入力したnull文字列に従って接続されます.
だから結果は零金相公が1にいた.になりました.
答えを簡単な「」に変える
answer += "김서방은 "+i+"에 있다."
(x)answer = "김서방은 "+i+"에 있다."
(o)そして入ればいいです
コードの変更 import java.util.ArrayList;
class Solution {
public String solution(String[] seoul) {
String answer = "";
String lname = "Kim";
ArrayList<String> list = new ArrayList<String>();
for(String s : seoul) {
list.add(s);
}
for(int i=0; i<seoul.length; i++) {
if(lname.equals(list.get(i).toString())) {
answer = "김서방은 "+i+"에 있다";
}
}
return answer;
}
}
Reference
この問題について([JAVA]プログラマー第一段階:ソウルで金の婿を探す), 我々は、より多くの情報をここで見つけました
https://velog.io/@wldus9503/JAVA프로그래머스-1단계-서울에서-김서방-찾기
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
import java.util.ArrayList;
class Solution {
public String solution(String[] seoul) {
String answer = "";
String lname = "Kim";
ArrayList<String> list = new ArrayList<String>();
for(String s : seoul) {
list.add(s);
}
for(int i=0; i<seoul.length; i++) {
if(lname.equals(list.get(i).toString())) {
answer = "김서방은 "+i+"에 있다";
}
}
return answer;
}
}
Reference
この問題について([JAVA]プログラマー第一段階:ソウルで金の婿を探す), 我々は、より多くの情報をここで見つけました https://velog.io/@wldus9503/JAVA프로그래머스-1단계-서울에서-김서방-찾기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol