2016-03-24 4 views
-2

私は投稿を見てきましたが、正確な答えは見つかりませんでした。これは私が持っているコードです。 s.CharAt(0)を設定すると値を返すだけで、hはhと等しくなります。私はそれが自動的に実行され、アレイを使用しないようにしたい。配列を使用せずに文字列内の最初の文字列を検索するか、手作業で手紙を入力する

String s = "hellohe"; 
int d = s.length(); 

for (int i =0; i<d;i++)//{ 
    char result=s.charAt(0); 

if (result==s.charAt(i)) { 
    System.out.println(result); 
} 
+0

あなたの質問は少し不明です。それが*繰り返されるインスタンスを持つ最初の 'char'であるため、' h 'になる可能性があります。しかし、実際に繰り返される最初の 'char'であるので、' l'も有効です。 – Ceelos

+0

こんにちは、Summetだけ私の質問に答えている。とにかくありがとう! –

+0

あなたがあなたがそれを投稿したときに私があなたに答えを与えたことを意味するものを明確にしました。とにかく、乾杯! – Ceelos

答えて

0

を、私は非常にクリーンを提案

public static char getFirstReocurringCharacter(String s) { 
    for (int i = 0; i < s.length(); i++) { 
     for (int j = i + 1; j < s.length(); j++) { 
      if (s.charAt(i) == s.charAt(j)) { 
       return s.charAt(i); 
      } 
     } 
    } 
    return ' '; 
} 

あなたが呼び出すことができます:

方法とソリューション210
public static void main(String[] args) { 
    String s = "heasellohe"; 
    char result = getFirstReocurringCharacter(s); 
    System.out.println(result); 
} 

サンプル実行:

実行:SUCCESSFUL
時間
BUILD(合計時間:0秒)

今、あなたは別のStrings

に複数回呼び出すと、メソッドを実行することができます
+0

完璧!うまく動作します –

+0

こんにちはCeelos、私はまだ質問がありますあなたは私に仕事上のループを教えてくださいできますか?私は比較しようとしています.... ile 0 - > h、h ---> e、e - > l、l == l? –

+0

@miami_oleg外側のループは各文字を繰り返し処理します。内部ループは、外部ループがオンになっている文字の後に各文字を繰り返します。最初の比較は 'h'と' e'の間です。内部ループは、外側ループと内側ループの両方が、それらが置かれている文字に対して一致したときに戻る。 – Ceelos

1

EDIT: 次のような場合には、それは「H」を出力しますので、これは、参照(source)をバック用いて第一reocurring文字を印刷し、先になります。

String myString = "hellohe"; 
Pattern p = Pattern.compile("(([a-zA-Z]).*?(?=\\2))"); 
Matcher m = p.matcher(myString); 
m.find(); 
System.out.println(m.group(2)); 
+0

ありがとう、なぜそれが最初のreocurring手紙であるのでHを返さないでしょうか? –

+0

あなたは私の答えを意味し、編集したことをちょうど理解しました –

関連する問題