Dla więcej niż jednego znaku: char [] c = s.toCharArray ();
67
Możesz użyć funkcji .charAt (int) z napisami, aby pobrać wartość char w dowolnym indeksie. Jeśli chcesz przekonwertować String na tablicę char, spróbuj wywołać .toCharArray () na String.
String g ="line";char c = g.charAt(0);// returns 'l'char[] c_arr = g.toCharArray();// returns a length 4 char array ['l','i','n','e']
Nie chciałem specjalnie używać „123”. Użyłem tylko jako przykładu. Dla char byłby to inny przykład jak „p”, ponieważ char jest pojedynczym znakiem, a nie wieloma.
Jokhen
1
funkcja toCharArray () zwraca tablicę znaków na wypadek, gdybyś chciał podzielić swój ciąg znaków na znaki
Genjuro
8
Jeśli ciąg ma 1 znak, po prostu weź ten znak . Jeśli łańcuch nie ma długości 1 znaku, nie można go parsować w znak.
Najprostszym sposobem konwersji Stringna a charjest użycie charAt():
String stringAns="hello";char charAns=stringAns.charAt(0);//Gives You 'h'char charAns=stringAns.charAt(1);//Gives You 'e'char charAns=stringAns.charAt(2);//Gives You 'l'char charAns=stringAns.charAt(3);//Gives You 'l'char charAns=stringAns.charAt(4);//Gives You 'o'char charAns=stringAns.charAt(5);//Gives You:: Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 5
Mogę być trochę spóźniony, ale uznałem to za przydatne, rozumiem kadencję jako Ciąg, a tytuł lewej kolumny jako Konwertuj na. :-)
AKTUALIZACJA: W końcu odzyskałem hasło, zaktualizowałem tekst do skopiowania, aby inni mogli po prostu kopiować i wklejać jak zawsze, a niektórzy mogą uzyskać indeksację danych (jeśli tak się dzieje). :-) Wesołego listopadowego wąsy.
Dlaczego kciuki w dół? To naprawdę odpowiada na pytanie, abyś mógł sprawdzić, jak parsować inne typy
Davide,
4
@Davide Prawdopodobnie dlatego, że posty nie powinny zawierać ważnych informacji jako obrazu, gdy można je opublikować jako tekst. Obrazy nie mogą być wyszukiwane i kopiowane / wklejane, są często blokowane i nie mogą być odczytane przez użytkowników polegających na czytnikach ekranu.
Modus Tollens
Proszę edytować swój post i pokazać rzeczywisty tekst zamiast screenów. Inni nie mogą kopiować ani wklejać z twoich zdjęć. Zobacz tutaj, aby uzyskać szczegółowe informacje. Dziękuję Ci.
Pang
2
Zgadzam się z pytaniem @Davide - „Dlaczego kciuk w dół?”. Wierzę, że to sprawi, że użytkownik, który to dostanie, nie będzie uczestniczył w przepełnieniu stosu w przyszłości i uważam, że tak nie powinno być. Z mojej perspektywy „kciuki w dół” nigdy nie powinny być używane! Jest to w swej istocie negatywne i nie przynosi żadnej wartości.
Marco
Jesteś pewien, że char --> StringGoesHere.parseFloat(int position);to prawda? Szczerze mówiąc, nie sprawdziłem, ale jestem całkiem pewien, Stringże nie ma parseFloatmetody, a nawet jeśli tak, nie rozumiem, dlaczego to właśnie chciałbyś tam zrobić.
BeUndead,
3
Jeśli chcesz przeanalizować ciąg znaków do znaku, podczas gdy obiekt String reprezentuje więcej niż jeden znak, po prostu użyj następującego wyrażenia:
char c = (char) Integer.parseInt (s) . Gdzie s oznacza ciąg, który chcesz przeanalizować. Większość ludzi zapomina, że znaki char reprezentują liczbę 16-bitową, a zatem mogą być częścią dowolnego wyrażenia liczbowego :)
To jest źle. Przetwarzanie ciągu na liczbę oznacza, że liczba została przekonwertowana na ciąg i chcemy odzyskać liczbę. Dokładnie w ten sam sposób, parsowanie znaku z łańcucha oznacza, że znak został przekonwertowany na łańcuch i chcemy go przywrócić. Użycie numeru pośredniego nie jest tym, o co poprosił PO.
Vlad
@Vlad Poprosił o numer, ponieważ to właśnie charjest, tak jak inti double. Podał nawet przykład String„123”. a kto mówi, że nie możesz przekonwertować charna a Stringo długości większej niż jeden i odwrotnie? Wypróbuj sam z char c = 123: String.valueOf((int) c).equals("123")Returns true.
Adam Martinu
1
Przepraszam, ale wszystko sprowadza się do liczb, nie o to chodzi w tym pytaniu. Możesz spojrzeć na zaakceptowaną odpowiedź, która wyraźnie wyklucza półprodukt int. Na przykład musiałeś przesyłać do int, co oznacza, że nie pracujesz z oryginałem char, ale z int, który w jakiś sposób odpowiada oryginałowi char.
Vlad
2
import java.io.*;class ss1
{publicstaticvoid main(String args[]){String a =newString("sample");System.out.println("Result: ");for(int i=0;i<a.length();i++){System.out.println(a.charAt(i));}}}
Możesz użyć funkcji .charAt (int) z napisami, aby pobrać wartość char w dowolnym indeksie. Jeśli chcesz przekonwertować String na tablicę char, spróbuj wywołać .toCharArray () na String. Jeśli ciąg ma 1 znak, po prostu weź ten znak, wywołując .charAt (0) (lub .First () w C #).
Odpowiedzi:
Jeśli łańcuch zawiera dokładnie jeden znak, najprostszym sposobem na konwersję go na znak jest prawdopodobnie wywołanie
charAt
metody:źródło
Możesz użyć funkcji .charAt (int) z napisami, aby pobrać wartość char w dowolnym indeksie. Jeśli chcesz przekonwertować String na tablicę char, spróbuj wywołać .toCharArray () na String.
źródło
możesz użyć tej sztuczki:
źródło
"123"
się'1'
, że to, co jesteś po?Jeśli ciąg ma 1 znak, po prostu weź ten znak . Jeśli łańcuch nie ma długości 1 znaku, nie można go parsować w znak.
źródło
lub Jeśli chcesz indywidualnie, możesz jako
źródło
org.apache.commons.lang.StringEscapeUtils . (un) Metody EscapeJava są prawdopodobnie takie, jak chcesz
Odpowiedź od brainzzy not mine:
https://stackoverflow.com/a/8736043/1130448
źródło
Najprostszym sposobem konwersji
String
na achar
jest użyciecharAt()
:Oto pełny skrypt:
źródło
Mogę być trochę spóźniony, ale uznałem to za przydatne, rozumiem kadencję jako Ciąg, a tytuł lewej kolumny jako Konwertuj na. :-)
AKTUALIZACJA: W końcu odzyskałem hasło, zaktualizowałem tekst do skopiowania, aby inni mogli po prostu kopiować i wklejać jak zawsze, a niektórzy mogą uzyskać indeksację danych (jeśli tak się dzieje). :-) Wesołego listopadowego wąsy.
źródło
char --> StringGoesHere.parseFloat(int position);
to prawda? Szczerze mówiąc, nie sprawdziłem, ale jestem całkiem pewien,String
że nie maparseFloat
metody, a nawet jeśli tak, nie rozumiem, dlaczego to właśnie chciałbyś tam zrobić.Jeśli chcesz przeanalizować ciąg znaków do znaku, podczas gdy obiekt String reprezentuje więcej niż jeden znak, po prostu użyj następującego wyrażenia: char c = (char) Integer.parseInt (s) . Gdzie s oznacza ciąg, który chcesz przeanalizować. Większość ludzi zapomina, że znaki char reprezentują liczbę 16-bitową, a zatem mogą być częścią dowolnego wyrażenia liczbowego :)
źródło
char
jest, tak jakint
idouble
. Podał nawet przykładString
„123”. a kto mówi, że nie możesz przekonwertowaćchar
na aString
o długości większej niż jeden i odwrotnie? Wypróbuj sam zchar c = 123
:String.valueOf((int) c).equals("123")
Returnstrue
.int
. Na przykład musiałeś przesyłać doint
, co oznacza, że nie pracujesz z oryginałemchar
, ale zint
, który w jakiś sposób odpowiada oryginałowichar
.źródło
Możesz wykonać następujące czynności:
źródło
String str = "abc"; char[] char_str = str.toCharArray();
Możesz po prostu użyć
toCharArray()
do konwersji ciągu znaków na tablicę znaków:źródło
Esej:
Dane wyjściowe zobacz ten link: Kliknij tutaj
Dzięki :-)
źródło
Możesz użyć funkcji .charAt (int) z napisami, aby pobrać wartość char w dowolnym indeksie. Jeśli chcesz przekonwertować String na tablicę char, spróbuj wywołać .toCharArray () na String. Jeśli ciąg ma 1 znak, po prostu weź ten znak, wywołując .charAt (0) (lub .First () w C #).
źródło