2010-03-11 143 views

回答

97
char firstLetter = someString.charAt(0); 
String oneLetter = String.valueOf(someChar); 

您可以通过识别可能涉及的类来找到文档。在这里,候选人是java.lang.Stringjava.lang.Character

你应该用自己熟悉启动:

  • 原始包装中java.lang
  • Java集合框架java.util

这也有助于通过教程使引入API更慢。

+0

看到文档 – objects 2010-03-11 22:36:56

16

String.valueOf('X')将创建您一个String "X"

"X".charAt(0)会给你的字符'X'

-2

我喜欢做这样的事情:

String oneLetter = "" + someChar; 
+6

相关的javadoc我强烈不喜欢它,因为它不传达的意图。你不想做任何加法或连接,所以'+'在这里不适合使用。 – 2010-03-12 09:44:19

+0

如上所述,这会让你的代码变得不可读 – 2014-09-21 14:32:37

2
String someString = "" + c; 
char c = someString.charAt(0); 
+1

''“+'c''使用自动装箱,因为它首先执行'”“+ Character.toString('c')'然后''” +“c”'然后''c“'。它执行额外的“”+“c”操作,如果使用太频繁,会减慢程序速度。 – HyperNeutrino 2015-08-07 19:48:05

13

由于没有人提到,另一种方式来创建String出单个字符的:

String s = Character.toString('X'); 

返回一个表示指定字符字符串对象。结果是 长度为1的字符串,仅由指定的char组成。

1
String g = "line"; 
//string to char 
char c = g.charAt(0); 
char[] c_arr = g.toCharArray(); 
//char to string 
char[] charArray = {'a', 'b', 'c'}; 
String str = String.valueOf(charArray); 
//(or iterate the charArray and append each character to str -> str+=charArray[i]) 

//或String =新字符串(chararray);

+0

这不会在现有答案中添加任何内容。 – Radiodef 2015-04-04 04:14:24

+0

@Radiodef - 他们在'toCharArray()'中加入了这正是我所期待的。当时没有其他答案提到它。 – ArtOfWarfare 2018-03-05 22:06:18

-1

为了将字符串转换成char

String str = "abcd"; 
char arr [] = new char[len]; // len is the length of the array 
arr = str.toCharArray(); 
+1

你不必要地分配一个长度为'len'的char数组只是在下一行被覆盖 – 2017-07-12 17:30:51