ฉันจะรับอักขระตัวสุดท้ายของสตริงได้อย่างไร
public class Main
{
public static void main(String[] args)
{
String s = "test string";
//char lastChar = ???
}
}
ฉันจะรับอักขระตัวสุดท้ายของสตริงได้อย่างไร
public class Main
{
public static void main(String[] args)
{
String s = "test string";
//char lastChar = ???
}
}
คำตอบ:
รหัส:
public class Test {
public static void main(String args[]) {
String string = args[0];
System.out.println("last character: " +
string.substring(string.length() - 1));
}
}
ผลลัพธ์ของjava Test abcdef
:
last character: f
charAt()
ไม่ได้substring()
นี่คือวิธีการใช้String.charAt()
:
String str = "India";
System.out.println("last char = " + str.charAt(str.length() - 1));
last char = a
ส่งผลให้การส่งออกเป็น
คำตอบอื่น ๆ ประกอบด้วยข้อความและรหัสที่ไม่จำเป็นจำนวนมาก ต่อไปนี้เป็นสองวิธีในการรับอักขระตัวสุดท้ายของ String:
ถ่าน
char lastChar = myString.charAt(myString.length() - 1);
เชือก
String lastChar = myString.substring(myString.length() - 1);
คำตอบอื่น ๆ นั้นสมบูรณ์มากและคุณควรใช้พวกเขาอย่างแน่นอนหากคุณพยายามค้นหาตัวอักษรตัวสุดท้ายของสตริง แต่ถ้าคุณเพียงแค่พยายามใช้เงื่อนไข (เช่นเป็นอักขระตัวสุดท้าย 'g') คุณสามารถทำสิ่งต่อไปนี้ได้:
if (str.endsWith("g")) {
หรือสตริง
if (str.endsWith("bar")) {
ลองสิ่งนี้:
if (s.charAt(0) == s.charAt(s.length() - 1))
วิธีง่ายๆคือ:
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);
}
ใช้อาเรย์ตัวละคร (ระวังสตริงที่ว่างเปล่าที่น่ารังเกียจหรืออาร์กิวเมนต์สตริง null!)
โซลูชันอื่นใช้ StringBuilder (ซึ่งโดยปกติจะใช้ในการทำการจัดการสตริงเนื่องจาก String เองไม่สามารถเปลี่ยนได้
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();
}
อีกวิธีหนึ่ง (สำหรับการสอนมากกว่าการใช้จริง) คือวิธีนี้:
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();
}
ที่นี่สตริงที่สมบูรณ์ถูกย้อนกลับแล้วส่วนที่ไม่ควรกลับถูกแทนที่ด้วยสตริงย่อย ;)
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));
ผลลัพธ์ควรเป็น:
t
การเข้ารหัสที่มีความสุข!
นี่เป็นวิธีที่ฉันใช้รับ xx สุดท้ายของสตริง:
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;
}
}
จากนั้นใช้งานเช่น:
String testStr = "this is a test string";
String last1 = takeLast(testStr, 1); //Output: g
String last4 = takeLast(testStr, 4); //Output: ring
public char lastChar(String s) {
if (s == "" || s == null)
return ' ';
char lc = s.charAt(s.length() - 1);
return lc;
}
str.charAt(str.length() - 1)
เป็นอักขระตัวสุดท้ายในสตริง แต่ให้พิจารณาว่าจะเกิดอะไรขึ้นถ้า str ว่างเปล่าหรือว่างเปล่า