Şarkı stringə necə çevirmək olar?

Mənə bir char var və bir char ehtiyacım var. Bir-birinə necə çevirmək olar?

629
17 нояб. Landon Kuhn tərəfindən təyin olunan 17 noyabr. 2011-11-17 21:37 '11 'da 21:37' də 2011-11-17 21:37
@ 11 cavab

Character.toString(char) istifadə edə bilərsiniz. Qeyd edək ki, bu metod sadəcə olaraq String.valueOf(char) qaytarır.

Başqaları tərəfindən qeyd edildiyi kimi, simli birləşmə də qısa olaraq işləyir:

 String s = "" + 's'; 

Amma əvvəllər tərtib ediləcək:

 String s = new StringBuilder().append("").append('s').toString(); 

çünki StringBuilder char[] ( StringBuilder() tərəfindən 16 ) tərəfindən dəstəklənir, yalnız bu array nəticəsində String kopyalanır.

String.valueOf(char) ardıcıl qapıya daxil olur, bir String.valueOf(char) olan String(char[], boolean) paketinin xüsusi String.valueOf(char) String(char[], boolean) .

523
17 нояб. Cavab Paul Bellora tərəfindən verilir . 2011-11-17 21:38 '11 at 21:38 2011-11-17 21:38

Yaxşı sual Bunun üçün aşağıdakı beş üsulum var.

 1. String stringValueOf = String.valueOf('c'); // most efficient 2. String stringValueOfCharArray = String.valueOf(new char[]{x}); 3. String characterToString = Character.toString('c'); 4. String characterObjectToString = new Character('c').toString(); // Although this method seems very simple, // this is less efficient because the concatenation // expands to new StringBuilder().append(x).append("").toString(); 5. String concatBlankString = 'c' + ""; 6. String fromCharArray = new String(new char[]{x}); 

Qeyd: Character.toString (char) bir String qaytarır . valueOf (char) . Beləliklə, hər ikisi eynidır.

String.valueOf(char[] value) new String(char[] value) çağırır new String(char[] value) , bu da String.valueOf(char[] value) təyin edir.

 public String(char value[]) { this.value = Arrays.copyOf(value, value.length); } 
border=0

Digər tərəfdən, String.valueOf(char value) aşağıdakı konstruktor paketini xüsusi olaraq çağırır .

 String(char[] value, boolean share) { // assert share : "unshared not supported"; this.value = value; } 

String.java Java 8 mənbə String.java mənbə kodu

Buna görə də, String.valueOf(char) String və sürət üçün String.valueOf(char) üçün ən səmərəli üsul kimi görünür.

190
26 марта '13 в 12:32 2013-03-26 12:32 Cavab WarFox tərəfindən 26 Mart '13 'də saat 12:32' də verilir 2013-03-26 12:32

Aşağıdakılar sətir c-ə (sürət və səmərəliliyin azalan qaydada) çevirilməsinin müxtəlif yollarıdır.

 char c = 'a'; String s = String.valueOf(c); // fastest + memory efficient String s = Character.toString(c); String s = new String(new char[]{c}); String s = String.valueOf(new char[]{c}); String s = new Character(c).toString(); String s = "" + c; // slowest + memory inefficient 
36
13 мая '15 в 18:52 2015-05-13 18:52 Cavab 13 may, saat 15: 30-da veriləcək

Aşağıdakilerden birini istifadə edin:

 String str = String.valueOf('c'); String str = Character.toString('c'); String str = 'c' + ""; 
29
17 нояб. Wayne Burkett tərəfindən verilmiş cavab noyabrın 17-də 2011-11-17 21:42 '11 at 21:42 2011-11-17 21:42

Character.toString () metodunu aşağıdakı kimi istifadə edin

 char c = 'l'; String s = Character.toString(c); 
16
17 нояб. Cavab Tom 17 noyabr. 2011-11-17 21:40 '11 'da 21:40' də 2011-11-17 21:40

Aşağıdakıları cəhd edin: Character.toString(aChar) və ya aşağıdakılar: aChar + ""

14
17 нояб. Noyabrın 17-də Óscar López tərəfindən verilmiş cavab 2011-11-17 21:39 '11 at 21:39 2011-11-17 21:39

@ WarFox'da göstərildiyi kimi, stringə strings konvertasiya üçün 6 üsul vardır. Lakin, ən sürətli biri, String.valueOf olduğunu söyləyən yuxarıdakı cavablara baxmayaraq birləşmə yolu ilə String.valueOf . Burada sübut edən bir nümunədir:

 @BenchmarkMode(Mode.Throughput) @Fork(1) @State(Scope.Thread) @Warmup(iterations = 10, time = 1, batchSize = 1000, timeUnit = TimeUnit.SECONDS) @Measurement(iterations = 10, time = 1, batchSize = 1000, timeUnit = TimeUnit.SECONDS) public class CharToStringConversion { private char c = 'c'; @Benchmark public String stringValueOf() { return String.valueOf(c); } @Benchmark public String stringValueOfCharArray() { return String.valueOf(new char[]{c}); } @Benchmark public String characterToString() { return Character.toString(c); } @Benchmark public String characterObjectToString() { return new Character(c).toString(); } @Benchmark public String concatBlankStringPre() { return c + ""; } @Benchmark public String concatBlankStringPost() { return "" + c; } @Benchmark public String fromCharArray() { return new String(new char[]{c}); } } 

Və nəticə:

 Benchmark Mode Cnt Score Error Units CharToStringConversion.characterObjectToString thrpt 10 82132.021 ± 6841.497 ops/s CharToStringConversion.characterToString thrpt 10 118232.069 ± 8242.847 ops/s CharToStringConversion.concatBlankStringPost thrpt 10 136960.733 ± 9779.938 ops/s CharToStringConversion.concatBlankStringPre thrpt 10 137244.446 ± 9113.373 ops/s CharToStringConversion.fromCharArray thrpt 10 85464.842 ± 3127.211 ops/s CharToStringConversion.stringValueOf thrpt 10 119281.976 ± 7053.832 ops/s CharToStringConversion.stringValueOfCharArray thrpt 10 86563.837 ± 6436.527 ops/s 

Gördüyünüz kimi, ən sürətli c + "" və ya "" + c ;

 VM version: JDK 1.8.0_131, VM 25.131-b11 

Bu performans fərqi -XX:+OptimizeStringConcat optimallaşdırma ilə bağlıdır. Burada bu barədə oxuya bilərsiniz .

4
11 июня '17 в 18:09 2017-06-11 18:09 Cavab Dmitri Dumanskiy tərəfindən 11 iyun '17' də saat 18:09 'də 2017-06-11 18:09' də verilir

Bir char bir char çevirmək üçün müxtəlif yollarımız var. Biri , Character sinifində statik toString() metodunu istifadə etməkdir:

 char ch = 'I'; String str1 = Character.toString(ch); 

Əslində bu toString metodu, toString istifadə edən String sinifindən valueOf metodunu istifadə edir:

 public static String toString(char c) { return String.valueOf(c); } 

Birbaşa istifadə etmək üçün ikinci yol:

 String str2 = String.valueOf(ch); 

String sinifində bu valueOf metodu char array istifadə edir:

 public static String valueOf(char c) { char data[] = {c}; return new String(data, true); } 

Beləliklə, üçüncü yol, tək bir xarakterə keçmək üçün anonim bir array istifadə etmək və sonra onu String konstruktoruna String :

 String str4 = new String(new char[]{ch}); 

Dördüncü yol birləşməni istifadə etməkdir:

 String str3 = "" + ch; 

Bu, əslində bir döngədə birləşmə edərkən həqiqətən üstün olan StringBuilder sinifindən append üsulunu istifadə edəcəkdir.

3
24 авг. Cavab verilir i_am_zero 24 aug. 2015-08-24 07:19 '15 at 7:19 'də 2015-08-24 07:19

Xüsusi bir qaydada burada bir neçə üsul vardır:

 char c = 'c'; String s = Character.toString(c); // Most efficient way s = new Character(c).toString(); // Same as above except new Character objects needs to be garbage-collected s = c + ""; // Least efficient and most memory-inefficient, but common amongst beginners because of its simplicity s = String.valueOf(c); // Also quite common s = String.format("%c", c); // Not common Formatter formatter = new Formatter(); s = formatter.format("%c", c).toString(); // Same as above formatter.close(); 
3
06 февр. Cavab HyperNeutrino tərəfindən verilir 06 Fevral. 2016-02-06 22:37 '16 saat 10:37 'da 2016-02-06 22:37

Cəzaları sınadım, amma nəticədə bunu aşağıdakı kimi həyata keçirdim

 editView.setFilters(new InputFilter[]{new InputFilter() { @Override public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) { String prefix = "http://"; //make sure our prefix is visible String destination = dest.toString(); //Check If we already have our prefix - make sure it doesn't //get deleted if (destination.startsWith(prefix)  (dstart <= prefix.length() - 1)) { //Yep - our prefix gets modified - try preventing it. int newEnd = (dend >= prefix.length()) ? dend : prefix.length(); SpannableStringBuilder builder = new SpannableStringBuilder( destination.substring(dstart, newEnd)); builder.append(source); if (source instanceof Spanned) { TextUtils.copySpansFrom( (Spanned) source, 0, source.length(), null, builder, newEnd); } return builder; } else { //Accept original replacement (by returning null) return null; } } }}); 
0
16 сент. Cavab 16 sentyabrda zmicer tərəfindən verilir 2016-09-16 16:01 '16 saat 16:01 'da 2016-09-16 16:01

Char Array'ı String'e çevirirəm

 Char[] CharArray={ 'A', 'B', 'C'}; String text = String.copyValueOf(CharArray); 
0
22 нояб. Cavab Şiva Nandam Sirmarigari tərəfindən 22 noyabrda verilir 2016-11-22 10:12 '16 'da 10:12' də 2016-11-22 10:12 'də

tags bağlı digər suallar və ya bir sual