Java'da String
bir char
türe nasıl değer ayrıştırabilirim ?
Bunu int ve double'a nasıl yapacağımı biliyorum (örneğin Integer.parseInt("123")
). Dizeler ve Karakterler için bir sınıf var mı?
Java'da String
bir char
türe nasıl değer ayrıştırabilirim ?
Bunu int ve double'a nasıl yapacağımı biliyorum (örneğin Integer.parseInt("123")
). Dizeler ve Karakterler için bir sınıf var mı?
Yanıtlar:
Dizeniz tam olarak bir karakter içeriyorsa, onu bir karaktere dönüştürmenin en basit yolu muhtemelen charAt
yöntemi çağırmaktır :
char c = s.charAt(0);
Herhangi bir dizindeki karakter değerini almak için Dizeler ile .charAt (int) işlevini kullanabilirsiniz . Dizeyi bir char dizisine dönüştürmek istiyorsanız, Dizede .toCharArray () yöntemini çağırmayı deneyin .
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']
bu numarayı kullanabilirsiniz:
String s = "p";
char c = s.charAt(0);
"123"
dönüşecek '1'
, peşinde olduğun şey bu mu?
Dize 1 karakter uzunluğundaysa, o karakteri almanız yeterlidir . Dize 1 karakter uzunluğunda değilse, bir karaktere ayrıştırılamaz.
String string = "This is Yasir Shabbir ";
for(char ch : string.toCharArray()){
}
veya ayrı ayrı istiyorsanız o zaman yapabilirsiniz
char ch = string.charAt(1);
org.apache.commons.lang.StringEscapeUtils . (me) EscapeJava yöntemleri istediğini probaby vardır
Benim değil brainzzy cevap:
Bir dönüştürmek için en basit yolu String
bir hiç char
kullanıyor 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
İşte tam bir komut dosyası:
import java.util.Scanner;
class demo {
String accNo,name,fatherName,motherName;
int age;
static double rate=0.25;
static double balance=1000;
Scanner scanString=new Scanner(System.in);
Scanner scanNum=new Scanner(System.in);
void input()
{
System.out.print("Account Number:");
accNo=scanString.nextLine();
System.out.print("Name:");
name=scanString.nextLine();
System.out.print("Father's Name:");
fatherName=scanString.nextLine();
System.out.print("Mother's Name:");
motherName=scanString.nextLine();
System.out.print("Age:");
age=scanNum.nextInt();
System.out.println();
}
void withdraw() {
System.out.print("How Much:");
double withdraw=scanNum.nextDouble();
balance=balance-withdraw;
if(balance<1000)
{
System.out.println("Invalid Data Entry\n Balance below Rs 1000 not allowed");
System.exit(0);
}
}
void deposit() {
System.out.print("How Much:");
double deposit=scanNum.nextDouble();
balance=balance+deposit;
}
void display() {
System.out.println("Your Balnce:Rs "+balance);
}
void oneYear() {
System.out.println("After one year:");
balance+=balance*rate*0.01;
}
public static void main(String args[]) {
demo d1=new demo();
d1.input();
d1.display();
while(true) {//Withdraw/Deposit
System.out.println("Withdraw/Deposit Press W/D:");
String reply1= ((d1.scanString.nextLine()).toLowerCase()).trim();
char reply=reply1.charAt(0);
if(reply=='w') {
d1.withdraw();
}
else if(reply=='d') {
d1.deposit();
}
else {
System.out.println("Invalid Entry");
}
//More Manipulation
System.out.println("Want More Manipulations: Y/N:");
String manipulation1= ((d1.scanString.nextLine()).toLowerCase()).trim();
char manipulation=manipulation1.charAt(0);
System.out.println(manipulation);
if(manipulation=='y') { }
else if(manipulation=='n') {
break;
}
else {
System.out.println("Invalid Entry");
break;
}
}
d1.oneYear();
d1.display();
}
}
Biraz geç olabilirim ama bu yararlı buldum, Cadena'yı String olarak anladım ve sol sütun başlığını Convert'e çevirdim. :-)
GÜNCELLEME: Bu yüzden, sonunda şifremi geri aldım, kopyalanabilir metinle güncelledim, böylece diğerleri her zamanki gibi kopyalayıp yapıştırabilir ve bazılarının verileri (eğer varsa) endeksleyebileceğini kopyalayabilir. :-) Mutlu Kasım Bıyığı.
double --> Double.parseDouble(String);
float --> Float.parseFloat(String);
long --> Long.parseLong(String);
int --> Integer.parseInt(String);
char --> stringGoesHere.charAt(int position);
short --> Short.parseShort(String);
byte --> Byte.parseByte(String);
boolean --> Boolean.parseBoolean(String);
char --> StringGoesHere.parseFloat(int position);
doğru olduğundan emin misin ? Dürüst olmak gerekirse kontrol etmedim, ama eminim String
ki bir parseFloat
yöntemim yok ve öyle olsa bile, orada yapmaya çalıştığınız şeyin neden bu olduğunu göremiyorum.
Bir String'i bir karakterle ayrıştırmak istiyorsanız, String nesnesi birden fazla karakteri temsil eder, sadece şu ifadeyi kullanırsınız: char c = (char) Integer.parseInt (s) . Burada s , ayrıştırmak istediğiniz Dizeye eşittir. Çoğu kişi, char'ların 16 bitlik bir sayıyı temsil ettiğini unutur ve böylece herhangi bir sayısal ifadenin bir parçası olabilir :)
char
bu, aynen int
ve gibi double
. Hatta String
"123" örneğini bile verdi . ve kim bir dönüştüremezsiniz diyor char
bir karşı String
bir ve arka daha büyük bir uzunluğa sahip? Kendiniz deneyin char c = 123
: String.valueOf((int) c).equals("123")
döner true
.
int
. Örneğin, yayınlamanız gerekiyordu int
, bu da orijinal char
ile değil, bir int
şekilde orijinale karşılık gelen bir ile çalıştığınız anlamına geliyor char
.
import java.io.*;
class ss1
{
public static void main(String args[])
{
String a = new String("sample");
System.out.println("Result: ");
for(int i=0;i<a.length();i++)
{
System.out.println(a.charAt(i));
}
}
}
Aşağıdakileri yapabilirsiniz:
String str = "abcd";
char arr[] = new char[len]; // len is the length of the array
arr = str.toCharArray();
String str = "abc"; char[] char_str = str.toCharArray();
toCharArray()
Bir dizeyi char dizisine dönüştürmek için şunu kullanabilirsiniz :
Scanner s=new Scanner(System.in);
System.out.print("Enter some String:");
String str=s.nextLine();
char a[]=str.toCharArray();
Bir Deneme yolu:
public class CharToInt{
public static void main(String[] poo){
String ss="toyota";
for(int i=0;i<ss.length();i++)
{
char c = ss.charAt(i);
// int a=c;
System.out.println(c); } }
}
Çıktı için bu bağlantıya bakın: Buraya tıklayın
Teşekkürler :-)
Herhangi bir dizindeki karakter değerini almak için Dizeler ile .charAt (int) işlevini kullanabilirsiniz . Dizeyi bir char dizisine dönüştürmek istiyorsanız, Dizede .toCharArray () yöntemini çağırmayı deneyin . Dize 1 karakter uzunluğundaysa, .charAt (0) (veya C # içindeki .First () öğesini çağırarak o karakteri almanız yeterlidir.