java - I keep getting out of bounds error how do i fix this? -
स्कैनर स्कैन = नया स्कैनर (System.in); System.out.println ("एक शब्द दर्ज करें"); स्ट्रिंग रेखा = स्कैन। एनएक्सटाइन (); स्ट्रिंग डुबकी = ""; Int a = line.length (); Int x = 0; Int y = 0; जबकि (y & lt; ए) {int b = line.indexOf (""); If (line.substring (x, x + 1) .equals ("a") || line.substring (x, x + 1) .equals ("e") || लाइन.sबस्ट्रिंग (x, x + 1) .equals ("i") = line.substring (x, x + 1) .equals ("o") = line.substring (x, x + 1) .equals ("u")) {डॉट = लाइन । एसबस्ट्रिंग (एक्स, बी -1); } Else {pig = line.substring (b - 1, x + 2) + लाइन.चारअट (x); } लाइन = लाइन.substring (b + 1); y ++; } System.out.println (सुअर);
मुझे लगता है कि शब्दों को किसी भी वाक्य में डुबकी लैटिन में परिवर्तित करने के लिए यदि शब्द स्वर से शुरू होता है तो बस अंत में रास्ता जोड़ते हैं यदि यह एक व्यंजन से शुरू होता है तो पहला अक्षर पीछे और जोड़ रास्ता
स्टैकट्र्रेस:
java.lang.StringIndexOutOfBoundsException: स्ट्रिंग इंडेक्स श्रेणी से बाहर: -1 java.lang.String.Substring पर (अज्ञात स्रोत) पर सूर्य पर sun.reflect.NativeMethodAccessorImpl.invoke0 (मूल विधि) पर pig_latin.main (प्रथमनाम_लास्टनाम.जावा})। Sun.reflect.NativeMethod में प्रवेश करें। प्रवेश। ओक (अज्ञात स्रोत) पर sun.reflect.DellegatingMethodAccessorImpl.invoke (अज्ञात स्रोत) java.lang पर Edu.rice.cs.drjava.model.compiler.JavacCompiler.runCommand पर। Reflect.Method.invoke (अज्ञात स्रोत)
< लाइन में शब्दों पर नज़र रखने के लिए आपकी विधि एक शब्दों की श्रृंखला और फिर आपका लूप हो सकता है मुझे यह संदेह है कि यह स्ट्रिंग [] शब्द = line.split ("");
लाइन
पर एस्ट्रिंग है, जो कि विफल हो रहा है क्योंकि आप सही ढंग से समाप्त नहीं होते हैं जब आप सभी शब्दों को संसाधित करते हैं क्योंकि चर y
उन वर्णों पर आधारित है, जहां आपके एल्गोरिद्म शब्द काट रहा है।
Comments
Post a Comment