Bir dizenin son karakterini nasıl edinebilirim?
public class Main
{
public static void main(String[] args)
{
String s = "test string";
//char lastChar = ???
}
}
Bir dizenin son karakterini nasıl edinebilirim?
public class Main
{
public static void main(String[] args)
{
String s = "test string";
//char lastChar = ???
}
}
Yanıtlar:
Kod:
public class Test {
public static void main(String args[]) {
String string = args[0];
System.out.println("last character: " +
string.substring(string.length() - 1));
}
}
Çıktı java Test abcdef
:
last character: f
charAt()
değilsubstring()
İşte bir yöntem String.charAt()
:
String str = "India";
System.out.println("last char = " + str.charAt(str.length() - 1));
Ortaya çıkan çıktı last char = a
.
Diğer cevaplar çok eksiksiz ve bir dizenin son karakterini bulmaya çalışıyorsanız bunları kesinlikle kullanmalısınız. Ancak yalnızca bir koşullu (örneğin son karakter 'g') kullanmaya çalışıyorsanız, aşağıdakileri de yapabilirsiniz:
if (str.endsWith("g")) {
veya, dizeler
if (str.endsWith("bar")) {
Basit çözüm:
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);
}
Bir karakter dizisi kullanma (boş boş String veya null String argümanına dikkat edin!)
Başka bir çözüm StringBuilder kullanır (bu genellikle String'in değişmez olduğu için String manupilation yapmak için kullanılır.
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();
}
Yine başka bir yaklaşım (talimat için gerçek kullanımdan daha fazlası) budur:
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();
}
Burada tüm dize ters çevrilir ve sonra ters çevrilmemesi gereken bölüm alt dize ile değiştirilir. ;)
public String lastChars(String a) {
if(a.length()>=1{
String str1 =a.substring(b.length()-1);
}
return str1;
}
public char LastChar(String a){
return a.charAt(a.length() - 1);
}
String aString = "This will return the letter t";
System.out.println(aString.charAt(aString.length() - 1));
Çıktı şöyle olmalıdır:
t
Mutlu kodlama!
İşte bir dizenin son xx almak için kullandığım bir yöntem:
public static String takeLast(String value, int count) {
if (value == null || value.trim().length() == 0) return "";
if (count < 1) return "";
if (value.length() > count) {
return value.substring(value.length() - count);
} else {
return value;
}
}
Sonra şöyle kullanın:
String testStr = "this is a test string";
String last1 = takeLast(testStr, 1); //Output: g
String last4 = takeLast(testStr, 4); //Output: ring
str.charAt(str.length() - 1)
genellikle dizgideki son karakterdir; ancak str boş veya null olursa ne olacağını düşünün.