et à l'appel de la méthode forUrl()
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114 import java.lang.StringBuilder; import java.io.StringReader; import java.io.IOException; public class AccentManager { public String forUrl (String _string){ StringBuilder _sBuild = null; try{ StringReader _sRead = new StringReader(_string); _sBuild = new StringBuilder(); char c = (char)_sRead.read(); while( c != -1){ _sBuild.append(convertAccent(c)); c = (char)_sRead.read(); } _sRead.close(); }catch (IOException e) {e.printStackTrace();} return _sBuild.toString(); } public String wAndWoAccents (String _string){ StringBuilder _sBuild = null; try{ StringReader _sRead = new StringReader(_string); _sBuild = new StringBuilder(); char c = (char)_sRead.read(); while( c != -1){ _sBuild.append(removeAccent(c)); c = (char)_sRead.read(); } _sRead.close(); }catch (IOException e) {e.printStackTrace();} return _sBuild.toString(); } private String convertAccent(char c) { if (c == 'à') return "%E0"; if (c == 'á') return "%E1"; if (c == 'â') return "%E2"; if (c == 'ã') return "%E3"; if (c == 'ä') return "%E4"; if (c == 'å') return "%E5"; if (c == 'æ') return "%E6"; if (c == 'ç') return "%E7"; if (c == 'è') return "%E8"; if (c == 'é') return "%E9"; if (c == 'ê') return "%EA"; if (c == 'ë') return "%EB"; if (c == 'ì') return "%EC"; if (c == 'í') return "%ED"; if (c == 'î') return "%EE"; if (c == 'ï') return "%EF"; if (c == 'À') return "%C0"; if (c == 'Á') return "%C1"; if (c == 'Â') return "%C2"; if (c == 'Ã') return "%C3"; if (c == 'Ä') return "%C4"; if (c == 'Å') return "%C5"; if (c == 'Æ') return "%C6"; if (c == 'Ç') return "%C7"; if (c == 'È') return "%C8"; if (c == 'É') return "%C9"; if (c == 'Ê') return "%CA"; if (c == 'Ë') return "%CB"; if (c == 'Ì') return "%CC"; if (c == 'Í') return "%CD"; if (c == 'Î') return "%CE"; if (c == 'Ï') return "%CF"; return "" + c; } private String removeAccent(char c) { if (c == 'à') return c+"|a"; if (c == 'á') return c+"|a"; if (c == 'â') return c+"|a"; if (c == 'ã') return c+"|a"; if (c == 'ä') return c+"|a"; if (c == 'å') return c+"|a"; if (c == 'æ') return c+"|(?:ae)"; if (c == 'ç') return c+"|c"; if (c == 'è') return c+"|e"; if (c == 'é') return c+"|e"; if (c == 'ê') return c+"|e"; if (c == 'ë') return c+"|e"; if (c == 'ì') return c+"|i"; if (c == 'í') return c+"|i"; if (c == 'î') return c+"|i"; if (c == 'ï') return c+"|i"; if (c == 'À') return c+"|A"; if (c == 'Á') return c+"|A"; if (c == 'Â') return c+"|A"; if (c == 'Ã') return c+"|A"; if (c == 'Ä') return c+"|A"; if (c == 'Å') return c+"|A"; if (c == 'Æ') return c+"|(?:AE)"; if (c == 'Ç') return c+"|C"; if (c == 'È') return c+"|E"; if (c == 'É') return c+"|E"; if (c == 'Ê') return c+"|E"; if (c == 'Ë') return c+"|E"; if (c == 'Ì') return c+"|I"; if (c == 'Í') return c+"|I"; if (c == 'Î') return c+"|I"; if (c == 'Ï') return c+"|I"; return "" + c; } }
la string passée en argument à forUrl mesure 3 caractères de long.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Exception in thread "main" java.lang.OutOfMemoryError: Java heap space at java.util.Arrays.copyOf(Arrays.java:2882) at java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:100) at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:390) at java.lang.StringBuilder.append(StringBuilder.java:119) at AccentManager.forUrl(AccentManager.java:15) at TrigramFinder.findNext(TrigramFinder.java:20) at TrigramBasedSynthesis.main(TrigramBasedSynthesis.java:17)
Partager