How do I get the last character of a string?
如何获取字符串的最后一个字符?
1 2 3 4 5 6 7 8
| public class Main
{
public static void main (String[] args )
{
String s ="test string";
//char lastChar = ???
}
} |
- 你有几个问题混在一起了。一般来说,是的,str.charAt(str.length() - 1)通常是字符串中的最后一个字符;但是考虑一下如果str为空或为空时会发生什么。
- 工作正常。但是回文检查的逻辑听起来不正确,还请说明您遇到了什么错误。
- 如何从字符串中删除最后一个字符的可能副本?
代码:
1 2 3 4 5 6 7
| public class Test {
public static void main (String args []) {
String string = args [0];
System. out. println("last character:" +
string. substring(string. length() - 1));
}
} |
输出:
号
- 以字符串的形式返回,而不是以字符的形式返回,但您已经知道如何执行后一种操作了,我不清楚您在追求什么。
- 如果你的字符串是空的呢?
- 在这种情况下,它将引发一个异常。你不想这样吗?
这里有一种使用String.charAt()的方法:
1 2
| String str ="India";
System. out. println("last char =" + str. charAt(str. length() - 1)); |
。
产生的输出是last char = a。
- 如果您想对字符串中的某个数字进行计算,请务必小心,因为char值与字面数字非常不同,并且您的数学结果将无法工作。
其他答案包含大量不必要的文本和代码。以下是获取字符串最后一个字符的两种方法:
烧焦
1
| char lastChar = myString.charAt(myString.length() - 1); |
。
弦
1
| String lastChar = myString. substring(myString. length() - 1); |
其他的答案是非常完整的,如果你想找到一个字符串的最后一个字符,你一定要使用它们。但是,如果您只想使用条件(例如,最后一个字符"g"),您还可以执行以下操作:
1
| if (str.endsWith("g")) { |
号
或,字符串
1
| if (str.endsWith("bar")) { |
号
试试这个:
1
| if (s.charAt(0) == s.charAt(s.length() - 1)) |
。
1 2
| String aString ="This will return the letter t";
System. out. println(aString. charAt(aString. length() - 1)); |
号
输出应为:
号
编码愉快!
- 这里给出的例子与stackoverflow.com/a/13025371/773479完全相同。
1 2 3
| public char LastChar (String a ){
return a. charAt(a. length() - 1);
} |
。
1 2 3 4 5 6
| public String lastChars (String a ) {
if(a. length()>=1{
String str1 =a. substring(b. length()-1);
}
return str1 ;
} |
- 我不认为这段代码会编译(不过只需要小的修复),一旦你编译了它,就给它一个空字符串的测试,看看它是否工作。
- 虽然这个答案可能是正确的和有用的,但如果您在其中包含一些解释来解释它如何帮助解决问题,则是首选的。这在将来变得特别有用,如果有一个改变(可能不相关)导致它停止工作,用户需要了解它曾经是如何工作的。谢谢!
简单的解决方案是:
1 2 3 4 5 6 7 8 9 10
| public String frontBack (String str ) {
if (str == null || str. length() == 0) {
return str ;
}
char[] cs = str. toCharArray();
char first = cs [0];
cs [0] = cs [cs. length -1];
cs [cs. length -1] = first ;
return new String(cs );
} |
使用字符数组(注意讨厌的空字符串或空字符串参数!)
另一种解决方案是使用StringBuilder(由于字符串本身是不可变的,所以通常使用它来进行字符串操作)。
1 2 3 4 5 6 7 8 9 10
| public String frontBack (String str ) {
if (str == null || str. length() == 0) {
return str ;
}
StringBuilder sb = new StringBuilder (str );
char first = sb. charAt(0);
sb. setCharAt(0, sb. charAt(sb. length()-1));
sb. setCharAt(sb. length()-1, first );
return sb. toString();
} |
。
另一种方法(更多的是指导而不是实际使用)是:
1 2 3 4 5 6 7 8
| public String frontBack (String str ) {
if (str == null || str. length() < 2) {
return str ;
}
StringBuilder sb = new StringBuilder (str );
String sub = sb. substring(1, sb. length() -1);
return sb. reverse(). replace(1, sb. length() -1, sub ). toString();
} |
在这里,整个字符串被反转,然后不应该反转的部分被子字符串替换。;)
数组中的某些内容:
1 2
| s = 'some string'
s[-1] # last char |
号
1 2 3 4 5 6
| public char lastChar (String s ) {
if (s =="" || s == null)
return ' ';
char lc = s. charAt(s. length() - 1);
return lc ;
} |
号