前提・実現したいこと
ここに質問の内容を詳しく書いてください。
ご覧いただきありがとうございます。Java初心者です。
Javaで、「文字列の中で、重複した文字を消す。ただし、はじめに出た文字だけは残す。」
というものを解いています。
この問題について、
・「はじめに出た文字だけを残し、その後の重複した文字を消す」という方法は、どうすればできるかアドバイスください。
・return文の指定について、どうすれば解決できるか、お答えいただきたいです。
これを解きたいです。ご回答よろしくお願いいたします。
発生している問題・エラーメッセージ
java: return文が指定されていません
該当のソースコード
Java
1 2import java.util.Scanner; 3public class Main { 4 public String removeDuplicates(String str) { 5 6 String strBefore = "abbc"; 7 //→表示させる必要あり 8 System.out.println(strBefore); 9 10 char ch0 = strBefore.charAt(0); 11 int code0 = ch0; 12 int value0 = code0; 13 System.out.println(code0); 14 //→表示させる必要はないが、過程を知るために表示 15 16 char ch1 = strBefore.charAt(1); 17 int code1 = ch1; 18 int value1 = code1; 19 System.out.println(code1); 20 //→表示させる必要はないが、過程を知るために表示 21 22 char ch2 = strBefore.charAt(2); 23 int code2 = ch2; 24 int value2 = code2; 25 System.out.println(code2); 26 //→表示させる必要はないが、過程を知るために表示 27 28 char ch3 = strBefore.charAt(3); 29 int code3 = ch3; 30 int value3 = code3; 31 System.out.println(code3); 32 //→表示させる必要はないが、過程を知るために表示 33 34 if (code0 == code1) { 35 String strAfter = strBefore.replace("a", ""); 36 System.out.println(strAfter); 37 //→このstrAfterと以下のstrAfterは、条件を満たしたものを表示させる必要あり 38 39 } else if (code1 == code2) { 40 String strAfter = strBefore.replace("b", ""); 41 System.out.println(strAfter); 42 43 } else if (code0 == code2) { 44 String strAfter = strBefore.replace("a", ""); 45 System.out.println(strAfter); 46 47 } else if (code2 == code3) { 48 String strAfter = strBefore.replace("c", ""); 49 System.out.println(strAfter); 50 51 } else if (code1 == code3) { 52 String strAfter = strBefore.replace("b", ""); 53 System.out.println(strAfter); 54 55 } else if (code0 == code3) { 56 String strAfter = strBefore.replace("a", ""); 57 System.out.println(strAfter); 58 59 } 60 } 61 62} 63 64
試したこと
・「はじめに出た文字だけを残し、その後の重複した文字を消す」ということについて、str.replaceを使ってみたのですが、すべて消えてしまうので、そこに困っています。
・if文で59行目に
if (str) {
return;
}
を挿入してみましたが、引き続きエラーとなりました。
補足情報(FW/ツールのバージョンなど)
回答4件
あなたの回答
tips
プレビュー