আমি কিভাবে একটি স্ট্রিং এর শেষ চরিত্র পেতে পারি?


181

আমি কিভাবে একটি স্ট্রিং এর শেষ চরিত্র পেতে পারি?

public class Main
{
    public static void main(String[] args) 
    {
        String s = "test string";
        //char lastChar = ???
    }   
}

2
আপনার একসাথে বেশ কয়েকটি প্রশ্ন মিশে গেছে। str.charAt(str.length() - 1)সাধারণত , হ্যাঁ, সাধারণত স্ট্রিংয়ের শেষ চরিত্র; তবে স্ট্র শূন্য, বা নাল থাকলে কী ঘটে তা বিবেচনা করুন।
ভ্যানস মাভেরিক

এটা ঠিক আছে। তবে পালিড্রোম চেকের যুক্তি সঠিক মনে হচ্ছে না, দয়া করে আপনার কী ত্রুটি হচ্ছে তা উল্লেখ করুন।
জিম্বাবাও

উত্তর:


243

কোড:

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

2
এটিকে একটি চরিত্র হিসাবে নয়, স্ট্রিং হিসাবে ফিরিয়ে দেয় তবে আপনি কীভাবে পরবর্তীকালে করতে হবে তা ইতিমধ্যে আপনি জানেন এবং আপনি কী করছেন তার পরে আমি পরিষ্কার নই।
jcomeau_ictx

8
যদি আপনার স্ট্রিং ফাঁকা থাকে?
ডেনিশ খান

4
এটি ক্ষেত্রে ব্যতিক্রম উত্থাপন করবে। আপনি এটি চান না?
jcomeau_ictx

প্রশ্ন একটি চরিত্রের জন্য জিজ্ঞাসা করে - এটি একটি অক্ষরের দীর্ঘ স্ট্রিং দেয়। ব্যবহার করা উচিত charAt()নাsubstring()
অ্যান্ড্রু

1
অ্যান্ড্রু, যদি আপনি এটি সম্পাদনার আগে আসল প্রশ্নটির দিকে ফিরে তাকান, আপনি দেখতে পাবেন যে ওপি ইতিমধ্যে চরআউট () চেষ্টা করেছিল এবং সে যা চেয়েছিল তা তা নয়। এটি উইকির মতো একটি মাধ্যমের যেমন এসও এর সমস্যাগুলির মধ্যে একটি, প্রশ্নগুলি একটি চলন্ত লক্ষ্য এবং কখনও কখনও উত্তরগুলি ফলস্বরূপ নির্বোধ দেখতে পারে।
jcomeau_ictx

96

এখানে একটি পদ্ধতি ব্যবহার করা হচ্ছে String.charAt():

String str = "India";
System.out.println("last char = " + str.charAt(str.length() - 1));

ফলাফল আউটপুট হয় last char = a


1
আপনি যদি স্ট্রিংয়ের মধ্যে একটি সংখ্যার জন্য গণনা করতে চান তবে সত্যই সতর্ক হন কারণ চর মানগুলি আক্ষরিক সংখ্যার চেয়ে একেবারে আলাদা এবং আপনার গণিতের ফলাফলগুলি কার্যকর করবে না।
জেসিবয়েড

32

অন্যান্য উত্তরগুলিতে প্রচুর অহেতুক পাঠ্য এবং কোড রয়েছে। স্ট্রিংয়ের শেষ চরিত্রটি পাওয়ার দুটি উপায় এখানে রয়েছে:

গৃহস্থালির কাজ

char lastChar = myString.charAt(myString.length() - 1);

দড়ি

String lastChar = myString.substring(myString.length() - 1);

32

অন্যান্য উত্তরগুলি খুব সম্পূর্ণ, আপনি যদি কোনও স্ট্রিংয়ের শেষ চরিত্রটি সন্ধান করার চেষ্টা করছেন তবে আপনার অবশ্যই সেগুলি ব্যবহার করা উচিত। তবে আপনি যদি কেবল শর্তসাপেক্ষে ব্যবহার করার চেষ্টা করছেন (যেমন শেষ অক্ষর 'জি'), আপনি নিম্নলিখিতগুলিও করতে পারেন:

if (str.endsWith("g")) {

বা, স্ট্রিং

if (str.endsWith("bar")) {

খুব দরকারী এবং বিষয়।
অ্যাকোয়ারেল

4

এটা চেষ্টা কর:

if (s.charAt(0) == s.charAt(s.length() - 1))

এই উত্তরটি ভুল। এটি কেবল প্রথম এবং শেষ অক্ষরগুলি একই কিনা তা পরীক্ষা করে দেখুন।
অ্যাকোয়ারেল

2

সহজ সমাধানটি হ'ল:

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);
}

একটি অক্ষর অ্যারে ব্যবহার করে (বাজে ফাঁকা স্ট্রিং বা নাল স্ট্রিং আর্গুমেন্টের জন্য নজর রাখুন!)

অন্য একটি সমাধান স্ট্রিংবিল্ডার ব্যবহার করে (যা সাধারণত স্ট্রিং ম্যানুপিলেশন করতে ব্যবহৃত হয় যেহেতু স্ট্রিং নিজেই অপরিবর্তনীয়।

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();
}

এখানে সম্পূর্ণ স্ট্রিংটি বিপরীত হয় এবং তারপরে যে অংশটি উল্টানো উচিত নয় তা স্ট্রিংয়ের সাথে প্রতিস্থাপন করা হয়। ;)


2
public String lastChars(String a) {
if(a.length()>=1{
String str1 =a.substring(b.length()-1);
}
return str1;
}

আমি মনে করি না যে এই কোডটি সংকলন করবে (কেবলমাত্র ছোট ফিক্সগুলির প্রয়োজন), একবার এটি সংকলন হয়ে গেলে এটি খালি স্ট্রিংয়ে এটি পরীক্ষা করে এটি পরীক্ষা করে give
Knells

2
যদিও এই উত্তরটি সম্ভবত সঠিক এবং দরকারী, এটি কীভাবে সমস্যা সমাধানে সহায়তা করে তা ব্যাখ্যা করার জন্য যদি আপনি এর সাথে কিছু ব্যাখ্যা অন্তর্ভুক্ত করেন তবে এটি অগ্রাধিকার দেওয়া হয় । এটি ভবিষ্যতে বিশেষত কার্যকর হয়ে ওঠে, যদি কোনও পরিবর্তন (সম্ভবত সম্পর্কিত নয়) এর কারণে এটি কাজ করা বন্ধ করে দেয় এবং ব্যবহারকারীরা এটি কীভাবে একবার কাজ করেছিল তা বুঝতে হবে। ধন্যবাদ!
হ্যাচেট


2
String aString = "This will return the letter t";
System.out.println(aString.charAt(aString.length() - 1));

আউটপুট হওয়া উচিত:

t

শুভ কোডিং!


1
এই সঠিক একই উদাহরণ এখানে দেওয়া হল stackoverflow.com/a/13025371/773479
জন Veldboom

2

স্ট্রিংয়ের শেষ 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

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.