質問編集履歴
4
解決
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
|
1
|
+
ぶじかいけつしました
|
body
CHANGED
@@ -1,51 +1,7 @@
|
|
1
|
-
### 前提・実現したいこと
|
1
|
+
### 前提・実現したいこと
|
2
|
-
|
2
|
+
|
3
|
-
|
3
|
+
### 発生している問題・エラーメッセージ
|
4
|
-
|
4
|
+
|
5
|
-
### 該当コード
|
5
|
+
### 該当のソースコード
|
6
|
-
|
6
|
+
|
7
|
-
class Sort {
|
8
|
-
protected String[] ary = { "abc", "bac", "cab","123","231" };
|
9
|
-
|
10
|
-
public int getIdx() {
|
11
|
-
return ary.length;
|
12
|
-
}
|
13
|
-
public String[] getAry() {
|
14
|
-
return ary;
|
15
|
-
}
|
16
|
-
public void asc() {
|
17
|
-
for (int i = 0; i < ary.length; i++) {
|
18
|
-
for (int j = 1; j < ary.length; j++) {
|
19
|
-
if ((int) ary[j].charAt(j-j) > (int) ary[i].charAt(i)) {
|
20
|
-
String tmp = ary[i];
|
21
|
-
ary[i] = ary[j];
|
22
|
-
ary[j] = tmp;
|
23
|
-
}
|
24
|
-
}
|
25
|
-
}
|
26
|
-
}
|
27
|
-
}
|
28
|
-
```
|
29
|
-
|
30
|
-
```
|
31
|
-
class Sample {
|
32
|
-
public static void main(String[] args) {
|
33
|
-
Sort s = new Sort();
|
34
|
-
s.asc();
|
35
|
-
s.getAry();
|
36
|
-
for (int i = 0; i < s.getIdx(); i++) {
|
37
|
-
System.out.println(s.getAry()[i]);
|
38
|
-
}
|
39
|
-
}
|
40
|
-
}
|
41
|
-
|
42
|
-
```
|
43
|
-
|
44
|
-
###
|
7
|
+
### 補足
|
45
|
-
文字列同士を比べる際にまずはstring→charに変換し、文字列コードで比較すると思うのですが、
|
46
|
-
この手順だけで比較するとString型配列とchar型配列の違いでエラーが出てしまいます。
|
47
|
-
```
|
48
|
-
Exception in thread "main" java.lang.StringIndexOutOfBoundsException:
|
49
|
-
String index out of range: 1
|
50
|
-
```
|
51
|
-
上記手順で抜けている点のアドバイスをお願いいたします。
|
3
コードの編集
title
CHANGED
File without changes
|
body
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
### 該当コード
|
6
6
|
```
|
7
7
|
class Sort {
|
8
|
-
protected String[] ary = { "
|
8
|
+
protected String[] ary = { "abc", "bac", "cab","123","231" };
|
9
9
|
|
10
10
|
public int getIdx() {
|
11
11
|
return ary.length;
|
2
コードの編集
title
CHANGED
File without changes
|
body
CHANGED
@@ -15,12 +15,11 @@
|
|
15
15
|
}
|
16
16
|
public void asc() {
|
17
17
|
for (int i = 0; i < ary.length; i++) {
|
18
|
-
for (int j =
|
18
|
+
for (int j = 1; j < ary.length; j++) {
|
19
|
-
if ((int) ary[j].charAt(j) > (int) ary[i].charAt(i)) {
|
19
|
+
if ((int) ary[j].charAt(j-j) > (int) ary[i].charAt(i)) {
|
20
20
|
String tmp = ary[i];
|
21
21
|
ary[i] = ary[j];
|
22
22
|
ary[j] = tmp;
|
23
|
-
return;
|
24
23
|
}
|
25
24
|
}
|
26
25
|
}
|
1
コードの編集
title
CHANGED
File without changes
|
body
CHANGED
@@ -2,11 +2,51 @@
|
|
2
2
|
配列内文字列をソートしたい。
|
3
3
|
importは使わず。(eg. arraylist)
|
4
4
|
|
5
|
+
### 該当コード
|
6
|
+
```
|
7
|
+
class Sort {
|
8
|
+
protected String[] ary = { "b", "a", "c" };
|
9
|
+
|
10
|
+
public int getIdx() {
|
11
|
+
return ary.length;
|
12
|
+
}
|
13
|
+
public String[] getAry() {
|
14
|
+
return ary;
|
15
|
+
}
|
16
|
+
public void asc() {
|
17
|
+
for (int i = 0; i < ary.length; i++) {
|
18
|
+
for (int j = 0; j < ary.length; j++) {
|
19
|
+
if ((int) ary[j].charAt(j) > (int) ary[i].charAt(i)) {
|
20
|
+
String tmp = ary[i];
|
21
|
+
ary[i] = ary[j];
|
22
|
+
ary[j] = tmp;
|
23
|
+
return;
|
24
|
+
}
|
25
|
+
}
|
26
|
+
}
|
27
|
+
}
|
28
|
+
}
|
29
|
+
```
|
30
|
+
|
31
|
+
```
|
32
|
+
class Sample {
|
33
|
+
public static void main(String[] args) {
|
34
|
+
Sort s = new Sort();
|
35
|
+
s.asc();
|
36
|
+
s.getAry();
|
37
|
+
for (int i = 0; i < s.getIdx(); i++) {
|
38
|
+
System.out.println(s.getAry()[i]);
|
39
|
+
}
|
40
|
+
}
|
41
|
+
}
|
42
|
+
|
43
|
+
```
|
44
|
+
|
5
45
|
### 試したこと
|
6
46
|
文字列同士を比べる際にまずはstring→charに変換し、文字列コードで比較すると思うのですが、
|
7
47
|
この手順だけで比較するとString型配列とchar型配列の違いでエラーが出てしまいます。
|
8
48
|
```
|
9
49
|
Exception in thread "main" java.lang.StringIndexOutOfBoundsException:
|
10
|
-
String index out of range:
|
50
|
+
String index out of range: 1
|
11
51
|
```
|
12
52
|
上記手順で抜けている点のアドバイスをお願いいたします。
|