teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

文法の修正

2020/07/03 05:58

投稿

-_sora.
-_sora.

スコア12

title CHANGED
File without changes
body CHANGED
@@ -2,57 +2,59 @@
2
2
  javaで複数行からなるtextファイルを読み込み,カタカナ語(1文字目はァ~ヶでなる文字,二文字目以降は'ー'も考慮)を読みだして,登場するカタカナ語を重複なく表示したいです.
3
3
 
4
4
  ### 発生している問題・エラーメッセージ
5
- 実行はできましたが,なに一つ文字が表示されませんでした.
5
+ 実行はできましたが,重複が検出されず,そのままカタカナ文字がすべて表示されてしいました.
6
6
 
7
7
  ### 該当のソースコード
8
8
 
9
9
  ```ここに言語名を入力
10
-     while ((line = br.readLine()) != null){/* 行単位で処理 */
10
+ while ((line = br.readLine()) != null){/* 行単位で処理 */
11
- int len = line.length();
11
+ int len = line.length();
12
- if (len <= 0) continue;
12
+ if (len <= 0) continue;
13
- int i=0;
13
+ int i=0;
14
- while (i < len){
14
+ while (i < len){
15
- char x = line.charAt(i);
15
+ char x = line.charAt(i);
16
-
16
+
17
-    /* 1文字目がカタカナ語か否かを判定 */
17
+ /* 1文字目がカタカナ語か否かを判定 */
18
- if (x >='ァ' && x <= 'ヶ') {
18
+ if (x >='ァ' && x <= 'ヶ') {
19
- word[key]+=x;
20
- i++;
21
- x = line.charAt(i); //読み込む文字を1列進める
22
-
23
- /* 二文字目以降がカタカナ語もしくは'ー'か否かを判定 */
24
- while(x >='ァ' && x <= 'ヶ'||x=='ー') {
25
19
  word[key]+=x;
26
20
  i++;
27
21
  x = line.charAt(i);
22
+
23
+ /* 二文字目以降がカタカナ語もしくは'ー'か否かを判定 */
24
+ while(x >='ァ' && x <= 'ヶ'||x=='ー') {
25
+ word[key]+=x;
26
+ i++;
27
+ x = line.charAt(i);
28
- }
28
+ }
29
- /* カタカナ文字の重複があるかを確認 */
29
+ /* カタカナ文字の重複があるかを確認 */
30
- for(int a=0;a<100;a++) {
30
+ for(int a=0;a<100;a++) {
31
- if(word[key].equals(word[a])) {
31
+ if(word[key].equals(word[a])) {
32
+ dup=1;
32
- dup=1; //重複したことを示すフラグ
33
+ System.out.println("true");
33
- if(key==a) {
34
+ if(key==a) {
34
- dup=0; //添え字が同じときに重複した場合はフラグを戻す
35
+ dup=0;
36
+ }
35
37
  }
36
38
  }
37
- }
38
- key++;
39
+ System.out.println(dup);
39
- if(dup!=1) {
40
+ if(dup!=1) {
40
-    System.out.println(word[key]); //重複していない場合のみ文字列を表示
41
+ System.out.println(word[key]);
41
-
42
- }*/
42
+
43
43
 
44
+ }
45
+ key++;
44
46
  }
45
47
  i++;
46
48
  dup=0;
47
49
  }
48
- }
50
+ }
49
-
50
51
  ```
51
52
 
52
53
  ### 試したこと
53
54
 
54
55
  if (x >='ァ' && x <= 'ヶ') の最初にword[key]を表示するように組んだところ,各カタカナ文字の1文字目が表示され,while(x >='ァ' && x <= 'ヶ'||x=='ー')でword[key]を表示したところ,カタカナ文字の二文字目以降が表示されたのでword[key]の値は問題なく入っていると思います.
55
56
  for(int a=0;a<100;a++) でword[a]の値も表示させたが問題なくすべて正常なカタカナ語が表示されました.
57
+ if(word[key].equals(word[a]))の最後でdupの値を表示させたところ,すべて0となってしまったので,if(key==a) dup=0; が毎回実行されているのだと思われます.
56
58
 
57
59
  ### 補足情報(FW/ツールのバージョンなど)
58
60
  eclipseを使用.文字コードはUTF-8.

1

書式の改善

2020/07/03 05:58

投稿

-_sora.
-_sora.

スコア12

title CHANGED
File without changes
body CHANGED
@@ -2,10 +2,7 @@
2
2
  javaで複数行からなるtextファイルを読み込み,カタカナ語(1文字目はァ~ヶでなる文字,二文字目以降は'ー'も考慮)を読みだして,登場するカタカナ語を重複なく表示したいです.
3
3
 
4
4
  ### 発生している問題・エラーメッセージ
5
-
6
- ```
7
5
  実行はできましたが,なに一つ文字列が表示されませんでした.
8
- ```
9
6
 
10
7
  ### 該当のソースコード
11
8