CodeGym /جاوا بلاگ /Random-UR /جاوا میں سبسٹرنگ
John Squirrels
سطح
San Francisco

جاوا میں سبسٹرنگ

گروپ میں شائع ہوا۔
جاوا میں اسٹرنگ پر سب سے زیادہ مقبول ایکشن کنکٹنیشن ہیں، انڈیکس کے لحاظ سے ایک کریکٹر حاصل کرنا اور سبسٹرنگ حاصل کرنا۔ اس آرٹیکل میں ہم آپ کو جاوا سبسٹرنگ طریقہ کے بارے میں بتانے جا رہے ہیں۔

جاوا سبسٹرنگ کیا ہے؟

جاوا سبسٹرنگ عام طور پر اسٹرنگ کے اندر حروف کی ایک متصل ترتیب ہے۔ یہ سٹرنگ کا ایک حصہ یا پوری سٹرنگ بھی ہو سکتا ہے۔ جاوا میں سبسٹرنگ - 2جاوا میں سبسٹرنگ کیا ہے؟ اس زبان میں ایک substring() طریقہ ہے، یا اس کے بجائے دو طریقے ہیں، جاوا طریقہ اوور لوڈنگ کی بدولت۔ آپ انہیں جاوا پروگرام میں سبسٹرنگ حاصل کرنے کے لیے استعمال کر سکتے ہیں۔ جاوا سبسٹرنگ کا پہلا طریقہ String substring(firstIndex) ہے اور دوسرا String substring (firstIndex, lastIndex) ہے ۔

جاوا میں سبسٹرنگ کا استعمال کیسے کریں۔

جواب آسان ہے: صرف سبسٹرنگ کا استعمال کریں۔ Java substring() طریقہ سٹرنگ کا ایک حصہ لوٹاتا ہے۔ اس کے لیے آپ دو طریقے استعمال کر سکتے ہیں:
ذیلی اسٹرنگ طریقہ کا نحو سٹرنگ سبسٹرنگ (پہلا انڈیکس) اسٹرنگ سبسٹرنگ (پہلا انڈیکس، آخری انڈیکس)
دلائل firstIndex آپ کی سٹرنگ میں ایک نمبر ہے جو آپ کے سبسٹرنگ کا پہلا انڈیکس ہے۔ شامل ہے۔ آپ کے سبسٹرنگ کا آخری نمبر پوری سٹرنگ کا آخری نمبر ہے۔ firstIndex آپ کی سٹرنگ میں ایک نمبر ہے جو آپ کے سبسٹرنگ کا پہلا انڈیکس ہے۔ شامل ہے۔
lastIndex آپ کے سٹرنگ کا نمبر ہے، سب سے پہلے اور اس کے بعد آپ کے سب اسٹرنگ سے خارج کر دیا جاتا ہے۔
جاوا میں سبسٹرنگ کو استعمال کرنے کے طریقے کی مثالیں۔
String s = "CodeGym";
System.out.println(s.substring(4));
//returns Gym
String s = "CodeGym";
System.out.println(s.substring(2,5));
//returns deG
بہت مشہور کام جو آپ کو سمجھنے میں مدد کرتے ہیں۔
  • جاوا میں سبسٹرنگ کیسے حاصل کی جائے۔
  • دیئے گئے اسٹرنگ کے تمام ذیلی اسٹرنگ کو کیسے تلاش کریں۔
  • سب سے طویل عام سبسٹرنگ کیسے تلاش کریں۔

جاوا میں سبسٹرنگ کیسے حاصل کی جائے (خاص طور پر)

یہ پہلی جاوا سبسٹرنگ مثال بہت آسان ہے۔ آپ کے پاس ایک سٹرنگ ہے اور آپ کو اس میں ایک سبسٹرنگ "کوڈ جیم" تلاش کرنے کی ضرورت ہے۔ آپ پہلے ہی جان چکے ہیں کہ جاوا میں سبسٹرنگ کیسے حاصل کی جاتی ہے۔ تو اس خاص مسئلے کا حل یہ ہے:
import java.io.IOException;

public class Main {

   public static void main(String[] args) throws IOException {

       String s1 = "the best Java Core course is CourseCodeGym.  End of story";
       String myTarget = "CodeGym";
       int index1 = s1.indexOf(myTarget);

       int index2 = index1 + myTarget.length();
       System.out.println(s1.substring(index1, index2));

   }
}
آؤٹ پٹ یہ ہے: CodeGym پروسیس ایگزٹ کوڈ کے ساتھ ختم ہوا 0 دی گئی سٹرنگ کے تمام ذیلی سٹرنگز کو کیسے تلاش کریں یہاں ہمارے پاس دی گئی سٹرنگ کے تمام ذیلی اسٹرنگز کو تلاش کرنے کا آسان ترین طریقہ ہے۔
import java.io.IOException;
public class Main {
   public static void main(String[] args) throws IOException {
       String myTarget = "CodeGym";
       for (int i = 0; i < myTarget.length(); i++) {
           for (int j = i + 1; j <= myTarget.length(); j++) {
               System.out.println(myTarget.substring(i, j));
           }
       }
   }
}
آؤٹ پٹ یہ ہے: C Co Cod Code CodeG CodeGy CodeGym o od ode ode odeG odeGy odeGym d de deG deGy deGym e eG eGy eGym G Gy جم y ym m عمل کو ایگزٹ کوڈ کے ساتھ ختم کیا گیا 0 طویل ترین عام سبسٹرنگ کو کیسے تلاش کیا جائے کمپیوٹر سائنس میں سب سے زیادہ مقبول کاموں میں سے ایک ہے۔ آپ اسے اپنے جونیئر ڈویلپر کے انٹرویو پر کافی زیادہ امکان کے ساتھ مل سکتے ہیں۔ بہرحال، اسے حل کرنے کی کوشش کریں، یہ ایک ابتدائی پروگرامر کے لیے بہت مفید ورزش ہے۔ سب سے طویل عام سبسٹرنگ کے مسئلے کا مطلب ہے سب سے لمبی تار (یا ان میں سے کچھ) تلاش کرنا جو دو یا دو سے زیادہ تاروں کی سب اسٹرنگ (یا سب اسٹرنگز ہیں)۔ مثال کے طور پر آپ کے پاس دو تار ہیں۔
String first = "CodeGym"
String second = "SomeGym"
آؤٹ پٹ ہونا چاہئے: eGym لہذا، آپ کو "پہلے" اور "دوسرے" کے تار لگانے ہوں گے۔ سب سے طویل عام سبسٹرنگ پرنٹ کریں۔ اگر دو یا دو سے زیادہ سب اسٹرنگ کی قدر طویل ترین عام سبسٹرنگ کے لیے ایک جیسی ہے تو ان میں سے کسی کو بھی پرنٹ کریں۔ ہم آپ کو پرزور مشورہ دیتے ہیں کہ آپ خود اس مسئلے کو حل کرنے کی کوشش کریں اور اس کے بعد ہی نیچے دیئے گئے کوڈ کو دیکھیں۔
public class SubStringTest {

   //  in this method we are looking for the Longest common substring of
   // first String with length = m  and the second String with length = n
   public static String longestCS(String first, String second, int m, int n) {
       // the maximal length
       int maxLength = 0;
       // the last index of the longest common substring
       int endIndex = m;

       // array stores the length of substring
       int[][] keeper = new int[m + 1][n + 1];

       for (int i = 1; i <= m; i++) {
           for (int j = 1; j <= n; j++) {
               // check if current characters of first and second strings match
               if (first.charAt(i - 1) == second.charAt(j - 1)) {
                   keeper[i][j] = keeper[i - 1][j - 1] + 1;

                   if (keeper[i][j] > maxLength) {
                       maxLength = keeper[i][j];
                       endIndex = i;
                   }
               }
           }
       }
       return first.substring(endIndex - maxLength, endIndex);
   }


   public static void main(String[] args) {
       String first = "CodeGym";
       String second = "SomeGym";
       int m = first.length(), n = second.length();
       System.out.println("The longest common substring = " + longestCS(first, second, m, n));
   }
}
آؤٹ پٹ یہ ہے: سب سے لمبی عام سبسٹرنگ = eGym

جاوا میں سبسٹرنگ کیسے کام کرتی ہے۔

JDK 7 اور نئے ورژنز میں، substring() اب کرداروں کی تعداد کو شمار نہیں کرتا ہے جو اس کی تخلیق کرتا ہے، جیسا کہ اس نے JDK 6 سے پہلے کے ورژن میں کیا تھا، لیکن صرف میموری (ڈھیر) میں ایک نئی صف بناتا ہے اور اس کا حوالہ دیتا ہے۔ . یہاں ایک مثال ہے:
String x = "CodeGymIsTheBest";
String y = x.substring (2,6);
String z = x.substring (0,3);
لہذا، JDK 7 اور بعد میں، آبجیکٹ x پر لاگو substring() طریقہ کار کے نتیجے میں تخلیق کردہ آبجیکٹ y اور z دو نئی تخلیق کردہ صفوں کا حوالہ دیں گے (ڈھیر پر) - y کے لیے {d,e, G, y} اور {C، o} z کے لیے ۔ میتھڈ سبسٹرنگ کے JDK 7 + ورژن میں، یہ دو نئی لائنیں (یعنی دو نئے کریکٹر اری) کو اصل سٹرنگ myLongString ({ C, o, d, e, G, y, m,) کے ساتھ میموری میں محفوظ کیا جائے گا۔ i, s, t, h, e, b,e, s,t} ایک صف کی شکل میں) ۔

سبسٹرنگ کا JDK 6 ورژن

آج بھی کچھ بڑے پروجیکٹس پر آپ JDK سے 6 بار میراثی کوڈ کی بنیاد پر مل سکتے ہیں۔ JDK 6 طریقہ میں سبسٹرنگ() مختلف طریقے سے کام کرتا ہے۔ جیسا کہ آپ شاید جانتے ہوں گے، سٹرنگ ایک ناقابل تغیر کلاس ہے اور سب اسٹرنگ حاصل کرنے کے لیے جاوا نے JDK 6 میں اس غیر تغیر پذیری کو پہلے استعمال کیا ۔ JDK 6 کے وقت، وہاں دو اور متغیرات محفوظ کیے گئے تھے: کریکٹر اری میں پہلے کردار کی تعداد اور ان کی مقدار۔ اس طرح، JDK 6 میں، String میں چار ویلیو [] (کریکٹر اری)، int آفسیٹ (سرنی میں پہلے کردار کا اشاریہ)، اور int کاؤنٹ (سرنی میں حروف کی تعداد) کے تین فیلڈز تھے ۔ جب JDK 6 میں سبسٹرنگ بنائی جاتی ہے، تو حروف کی صف کو نئے String آبجیکٹ میں کاپی نہیں کیا جاتا ہے۔ اس کے بجائے، دونوں آبجیکٹ ایک ہی کریکٹر ارے کا حوالہ محفوظ کرتے ہیں۔ تاہم دوسرا آبجیکٹ مزید دو متغیرات کو اسٹور کرتا ہے، سب اسٹرنگ کی پہلی علامت اور دوسری اس بارے میں ہے کہ سب اسٹرنگ میں کتنی علامتیں ہیں۔ میموری لیک کے مسئلے کی وجہ سے JDK 6 طریقہ بدل دیا گیا تھا۔ اس کا کیا مطلب ہے؟ آئیے فرض کریں کہ ہمارے پاس ایک string ہے x، اور ہم substring کا استعمال کرتے ہوئے کچھ ذیلی اسٹرنگ بناتے ہیں۔
String x = "CodeGymIsTheBest";
String y = x.substring (2,6);
String z = x.substring (0,3);
اب ہمارے پاس ایک آبجیکٹ x ہے جسے میموری کے ایک خاص حصے میں ہیپ کہتے ہیں اور دو اشیاء y اور z ایک ہی آبجیکٹ کا حوالہ دیتے ہیں x ۔ صرف x سے مراد دوسرے سے چھٹے تک کے عناصر ہیں، اور z سے مراد صفر سے تیسرے تک کے عناصر ہیں۔ کیا ہوگا اگر اصل آبجیکٹ x پہلے ہی استعمال ہو چکا ہو اور اس پر کسی حوالہ کے بغیر چھوڑ دیا جائے؟ ایک پروگرام میں دیگر تمام اشیاء صرف y اور z کے ساتھ کام کرتی ہیں۔ اس صورت میں کوڑا اٹھانے والا آبجیکٹ x کو تباہ کر سکتا ہے ، جبکہ میموری کی صف باقی رہتی ہے، اور اسے y اور z کے ذریعے استعمال کیا جاتا ہے۔ میموری کا اخراج ہوتا ہے۔ لہذا، جدید ترین، JDK 7 اور بعد کا ورژن، طریقہ استعمال کرنے والے میموری کے لحاظ سے کافی مہنگا ہے۔ تاہم یہ آپ کو میموری لیک ہونے سے روکنے کی اجازت دیتا ہے۔ اس کے علاوہ، نیا طریقہ تیزی سے کام کرتا ہے، کیونکہ اس میں حروف کی تعداد کا حساب نہیں لگانا پڑتا ہے۔ جو کچھ آپ نے سیکھا ہے اس کو تقویت دینے کے لیے، ہم تجویز کرتے ہیں کہ آپ ہمارے جاوا کورس سے ایک ویڈیو سبق دیکھیں
تبصرے
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION