前提・実現したいこと
ここに質問の内容を詳しく書いてください。
ご覧いただきありがとうございます。Java初心者です。
Javaで、「文字列の中で、重複した文字を消す。ただし、はじめに出た文字だけは残す。」
というものを解いています。
この問題について、
・「はじめに出た文字だけを残し、その後の重複した文字を消す」という方法は、どうすればできるかアドバイスください。
・return文の指定について、どうすれば解決できるか、お答えいただきたいです。
これを解きたいです。ご回答よろしくお願いいたします。
発生している問題・エラーメッセージ
java: return文が指定されていません
該当のソースコード
Java
import java.util.Scanner; public class Main { public String removeDuplicates(String str) { String strBefore = "abbc"; //→表示させる必要あり System.out.println(strBefore); char ch0 = strBefore.charAt(0); int code0 = ch0; int value0 = code0; System.out.println(code0); //→表示させる必要はないが、過程を知るために表示 char ch1 = strBefore.charAt(1); int code1 = ch1; int value1 = code1; System.out.println(code1); //→表示させる必要はないが、過程を知るために表示 char ch2 = strBefore.charAt(2); int code2 = ch2; int value2 = code2; System.out.println(code2); //→表示させる必要はないが、過程を知るために表示 char ch3 = strBefore.charAt(3); int code3 = ch3; int value3 = code3; System.out.println(code3); //→表示させる必要はないが、過程を知るために表示 if (code0 == code1) { String strAfter = strBefore.replace("a", ""); System.out.println(strAfter); //→このstrAfterと以下のstrAfterは、条件を満たしたものを表示させる必要あり } else if (code1 == code2) { String strAfter = strBefore.replace("b", ""); System.out.println(strAfter); } else if (code0 == code2) { String strAfter = strBefore.replace("a", ""); System.out.println(strAfter); } else if (code2 == code3) { String strAfter = strBefore.replace("c", ""); System.out.println(strAfter); } else if (code1 == code3) { String strAfter = strBefore.replace("b", ""); System.out.println(strAfter); } else if (code0 == code3) { String strAfter = strBefore.replace("a", ""); System.out.println(strAfter); } } }
試したこと
・「はじめに出た文字だけを残し、その後の重複した文字を消す」ということについて、str.replaceを使ってみたのですが、すべて消えてしまうので、そこに困っています。
・if文で59行目に
if (str) {
return;
}
を挿入してみましたが、引き続きエラーとなりました。
補足情報(FW/ツールのバージョンなど)
まだ回答がついていません
会員登録して回答してみよう