LoginSignup
0
0

More than 3 years have passed since last update.

【Java】部分文字列/要素を検索(AOJ12 - リング)

Posted at

AIZU ONLINE JUDGE の教材を使って勉強していきます
行いたい操作や文法をまとめ、
実際にその文法を使ってAOJを解答した例を載せています

indexOfで部分文字列を検索

  • indexOfメソッド
  • 文字列に含まれる部分文字列を検索
    • ヒット場合は、文字列のインデックス番号を返す(先頭0)
  • lastIndexOfメソッドは文字列の後ろから検索
    • 最初に見つかった位置のインデックスを返す

public class Main {
    public static void main(String[] args){

        String str1 = "Penpineappleapplepen";
        String str2 = "pineapple";

        int result = str1.indexOf(str2);

        if (result != -1) {
            System.out.println(str2 + "発見!");
            System.out.println(str2 + "が見つかった位置:" + result);
        } else {
            System.out.println(str2 + "は見つかりませんでした。。。");
        }
    }
}
pineapple発見!
pineappleが見つかった位置:3

indexOfで複数要素を検索

  • 第2引数を指定して複数の要素を検索する
  • indexOfメソッドの第2引数で検索開始位置指定
  • 文字がヒットしたらその次のインデックスを第2引数に指定し、続きから残りの文字列を検索
import java.util.ArrayList;
import java.util.Arrays;
public class Main {
    public static void main(String[] args){

        String str1 = "Penpineappleapplepen";

        int result;
        for (int i = 0; i < str1.length(); i++) {
            result = str1.indexOf("p", i);
            if (result != -1) {
                i = result;
                System.out.println("pを " + result +" 番目に発見した!");
            }
        }
    }
}
pを 3 番目に発見した!
pを 8 番目に発見した!
pを 9 番目に発見した!
pを 13 番目に発見した!
pを 14 番目に発見した!
pを 17 番目に発見した!

リング(ITP1-8)

図のようなリング状の文字列 s の任意の位置から、時計回りに連続した文字をいくつか選んで、文字列 p が作れるかを判定するプログラムを作成してください。
Input
1行目に文字列 s が与えられます。
2行目に文字列 p が与えられます。
Output
p が作れる場合は Yes と、作れない場合は No と1行に出力してください。
Constraints
* 1≤pの長さ≤sの長さ≤100
* 文字列は英小文字からなる
Sample Input 1
vanceknowledgetoad
advance
Sample Output 1
Yes

import java.util.Scanner;

public class Main {
    public static void main(String[] args){
        Scanner scan=new Scanner(System.in);
        String s=scan.next();
        String p=scan.next();
        s+=s;
        if(s.indexOf(p)>=0)System.out.println("Yes");
        else System.out.println("No");
        scan.close();
    }
}
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0