私は12文字の行を含むファイルを持っていて、そのファイルから5文字の文字を見つける必要があります。マッパーでは、私は12の 行の文字を取得していると5文字の2つのマップを作成し、2 文字を残し、次の行から次の3文字を取得したいと それのマップを作成します。減速機では、そのマップを私の 文字列と比較することができます。
File file = new File("myFile.txt");
try {
Scanner scanner = new Scanner(file);
String result = "";
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
result += line;
}
System.out.println(result);
//here you can use this array
String spl[] = result.split("(?<=\\G.....)");
System.out.println(Arrays.toString(spl));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
:
abcdefghijklkahfdjshjsdhsdfkjsdjkjks
[abcde, fghij, klkah, fdjsh, jsdhs, dfkjs, djkjk, s]
あなたは、コードのこの部分から解決策を鼓舞することができます
あなたは、これはSplitting a string at every n-th characterチェックし、あなたが5文字で結果を分割することができ、すべて一緒にあなたのラインを連結することができます
出力
abcdefghijklkahfdjshjsdhsdfkjsdjkjks
[abcde, fghij, klkah, fdjsh, jsdhs, dfkjs, djkjk, s]
私は、これは をabcdefghijklkahfdjshjsdhsdfkjsdjkjksのようなマップを作成したいEDIT
[ABCDE、BCDEF、CDEFG、defgh ...]
あなたはそうのように、この問題を解決することができます:
String str = "abcdefghijklkahfdjshjsdhsdfkjsdjkjks";
List<String> list = new ArrayList<>();
for (int i = 0; i < str.length()-4; i++) {
String s = "";
for (int j = i; j < i+5; j++) {
s+=result.charAt(j);
}
list.add(s);
}
出力
[abcde, bcdef, cdefg, defgh, efghi, fghij, ghijk, ...., djkjk, jkjks]
これまでに何を試しましたか? – bouteillebleu
@bouteillebleu私は、入力文字列の行を5行に分割し、そのためのマップを作成するが、入力文字列の最後の2文字をどのように扱うかわからない単純なプログラムを書いた。 –
あなたは 'cdefg'を含む行を返したいですか? –