通过索引获取字符串-Java

通过索引获取字符串-Java,java,string,Java,String,我知道如何计算字符串中某个字符或数字的索引,但是否有任何预定义的方法可以用于将字符指定在第n个位置?因此,在字符串“foo”中,如果我请求索引为0的字符,它将返回“f” 注意-在上面的问题中,“character”不是指char数据类型,而是字符串中的字母或数字。这里重要的一点是,调用该方法时,我接收的不是char,而是字符串(长度为1)。我知道substring()方法,但我想知道是否有更简洁的方法。你想要.charAt() 返回s 如果你一心想拥有一个字符串,有几种方法可以将字符转换成字符

我知道如何计算字符串中某个字符或数字的索引,但是否有任何预定义的方法可以用于将字符指定在第n个位置?因此,在字符串“foo”中,如果我请求索引为0的字符,它将返回“f”


注意-在上面的问题中,“character”不是指char数据类型,而是字符串中的字母或数字。这里重要的一点是,调用该方法时,我接收的不是char,而是字符串(长度为1)。我知道substring()方法,但我想知道是否有更简洁的方法。

你想要
.charAt()

返回
s

如果你一心想拥有一个字符串,有几种方法可以将字符转换成字符串:

String mychar = Character.toString("mystring".charAt(2));

甚至

String mychar = String.valueOf("mystring".charAt(2));

例如。

您正在寻找的方法是
charAt
。下面是一个例子:

String text = "foo";
char charAtZero = text.charAt(0);
System.out.println(charAtZero); // Prints f
有关更多信息,请参阅。如果你想要另一个简单的教程,或者

如果不希望结果作为
char
数据类型,而是作为字符串,则可以使用
Character.toString
方法:

String text = "foo";
String letter = Character.toString(text.charAt(0));
System.out.println(letter); // Prints f

如果您想了解有关
Character
类和
toString
方法的更多信息,我从中提取了我的信息。

考虑到您的需求,您对
substring()
非常感兴趣。标准方法是
charAt()
,但您说过不接受char数据类型。

您可以使用方法结果作为的参数


charAt
与不获取char的需求相结合的混合方法可能是

newstring = String.valueOf("foo".charAt(0));
但老实说,这并不比
substring()
更“整洁”。

简单到:

String charIs = string.charAt(index) + "";
像这样:

String a ="hh1hhhhhhhh";
char s = a.charAt(3);

所有建议的答案都不适用于用于编码外部字符的代理项对

下面是一个使用三种不同技术迭代字符串“字符”的示例(包括使用Java8流API)。请注意,此示例包含Unicode补充多语言平面(SMP)的字符。您需要使用适当的字体才能正确显示此示例和结果

// String containing characters of the Unicode 
// Supplementary Multilingual Plane (SMP)
// In that particular case, hieroglyphs.
String str = "The quick brown Here's the correct code. If you're using zybooks this will answer all the problems.

for (int i = 0; i<passCode.length(); i++)
{
    char letter = passCode.charAt(i);
    if (letter == ' ' )
    {
        System.out.println("Space at " + i);
    }
}
//包含Unicode字符的字符串
//补充多语言平面(SMP)
//在这种情况下,象形文字。

String str=“The quick brown以下是正确的代码。如果您正在使用zybooks,这将解决所有问题

var oldStr: String = "kotlin"
var firstChar: String = oldStr.elementAt(0).toString()
Log.d("firstChar", firstChar.toString())

for(int i=0;i如果有人用kotlin扭动,代码是:

这将返回位置1的字符,在本例中为k 请记住,索引从位置0开始,因此在本示例中:
kotlin将是k=位置0,o=位置1,t=位置2,l=位置3,i=位置4和n=位置5,使用代码点而不是字符更安全。当字符串中有表情时,字符可能会中断。

字符功能不起作用

Edittext.setText(YourString.ToCharray(),0,1)


这段代码运行得很好

是吗?答案很简单。你注意到他不想要
char
值吗?他知道如何做
substring()
,但只是想要一种“更整洁”的方式。仅供参考,我可以说
substring()
是最整洁的方式。@user845279
字符。toString
满足了所有必要的要求,一点也不凌乱。@pythonscript我同意,但它与直接使用
子字符串()
没有太大区别。我来晚了,但@RicardoAltamirano有点错。
endIndex
(第二个参数)substring(int,int)
是一个排他索引,只要
index
,它就不会对
index+1
抛出异常,即使对字符串中的最后一个字符也是如此。这是很公平的。但是,由于char是一个基本类型,我假设
toString()
不会对它起作用,并且
valueOf()
只适用于数字(我想,我可能是错的),那么如何将字符转换为字符串呢?“在上面的问题中,我所说的“字符”并不是指字符数据类型”--我不会将此理解为“我不会接受
字符”
“@Bluefire查看我的答案。
字符。toString
应该可以工作(它是类中的静态方法)这里重要的一点是,当调用方法时,我不会收到一个char,而是一个string“,但无论如何,谢谢(upvote):我认为Sylvain Leroux的答案更好。我同意@ChaojunZhong是一个更合适的答案,因为不建议使用charAt()因为当您有需要2个代码单元的字符时,您可能会遇到问题。@ametren是字符串串连接比
Character.toString
更可取?我认为这可能是个人偏好的问题。您也可以执行
string mychar=string.valueOf(“mystring.charAt(2))
在此情况下,我个人的偏好是
String mychar=“”+“mystring”.charAt(2)因为它是最简洁的。其他人对此会有不同的看法。OP表示需要长度为1的
String
,而不是
char
。其他6个答案,包括公认的答案,建议
charAt()
作为一个可能的解决方案。这个答案增加了什么?而且,看起来你在暗示
charAt()
使用基于1的索引,将
a
中唯一不同的字符放在第三个位置。如果这是真的,那么你最好说出来或解释一下,而不是暗示一下。事实并非如此:
charAt()
使用基于0的索引,因此
s
将是
'h'
String a ="hh1hhhhhhhh";
char s = a.charAt(3);
// String containing characters of the Unicode 
// Supplementary Multilingual Plane (SMP)
// In that particular case, hieroglyphs.
String str = "The quick brown Here's the correct code. If you're using zybooks this will answer all the problems.

for (int i = 0; i<passCode.length(); i++)
{
    char letter = passCode.charAt(i);
    if (letter == ' ' )
    {
        System.out.println("Space at " + i);
    }
}
var oldStr: String = "kotlin"
var firstChar: String = oldStr.elementAt(0).toString()
Log.d("firstChar", firstChar.toString())