অন্যান্য

ম্যাক 'স্ট্রিং ইনডেক্স রেঞ্জের বাইরে: 0' ...কেউ কি আমাকে বলতে পারেন এখানে কি ভুল? (জাভা)

চেজ আর

আসল পোস্টার
8 মে, 2008
পিডিএক্স
  • জুন 2, 2009
আমি আমার জাভা ক্লাসের জন্য এই প্রোগ্রামটি লেখা শেষ করেছি। এটি একটি সাধারণ প্রোগ্রাম যা একটি বেড়া ইনস্টল করতে কত খরচ হয় তা গণনা করে। শেষে, এটি জিজ্ঞাসা করে 'আপনি কি অন্য একটি অনুমান (Y/N) করতে চান', এবং ব্যবহারকারীকে হ্যাঁ বা না বেছে নিতে হবে। যাইহোক, আমি আমার চালানো শেষ করার পরে, আমি সেই বিকল্পটি পাব না, এটি কেবল বলে:

আরেকটি অনুমান গণনা করুন (Y/N): থ্রেড 'main' java.lang.StringIndexOutOfBoundsException-এ ব্যতিক্রম: স্ট্রিং ইনডেক্স রেঞ্জের বাইরে: 0
java.lang.String.charAt এ (String.java:558)
Test1.main (Test1.java:73) এ

কেন এমন করছে!!!

এখানে উপায় দ্বারা প্রোগ্রাম:

কোড: |_+_|

Littleodie914

জুন 9, 2004


রচেস্টার, এনওয়াই
  • জুন 2, 2009
বাহ, এটা কঠিন. আমি আপনার শেষ 'read.nextLine()' কে শুধুমাত্র 'read.next()' এ পরিবর্তন করে কাজ করতে পেরেছি, কিন্তু কেন এটি প্রথম উপায়ে কাজ করে না তা দেখতে আমি একটু ঘনিষ্ঠভাবে দেখব।

সম্পাদনা: বর্তমান লাইনের বাইরে পয়েন্টারকে অগ্রসর করার NextLine() পদ্ধতির সাথে কিছু করার আছে বলে মনে হচ্ছে। আমি নিজে এতটা বুঝতে পারছি না, কিন্তু এই লিঙ্কগুলি কিছুটা বিভ্রান্তি দূর করতে সাহায্য করতে পারে:

API স্ক্যানার
সম্পর্কিত ফোরাম পোস্ট

হাইরেজ

জানুয়ারী 6, 2004
পশ্চিম মার্কিন
  • জুন 2, 2009
আমি অনুমান করতে যাচ্ছি যে আপনার এক আপনার আগে রিড কল ​​কিবোর্ড ইনপুট বাফারে নতুন লাইনের অক্ষর ছেড়ে যাচ্ছে। অতএব, যখন আপনি nextLine() কল করেন, আপনি একটি খালি স্ট্রিং পাবেন, যার ফলে 0 পজিশনে অক্ষর পরীক্ষা করার চেষ্টা করা ব্যতিক্রম হয়, যেহেতু সেখানে কোনোটি নেই। এটি কনসোল ইনপুট সি ফাংশনগুলির অনেকগুলির সাথেও একটি সমস্যা। কোনোভাবে আপনি সম্ভবত প্রথমে একটি ডামি রিড কল ​​বা অন্য কিছু দিয়ে বাফারটি ফ্লাশ করতে চান। আমি দীর্ঘ সময়ের মধ্যে জাভা ব্যবহার করিনি তাই সঠিক পদ্ধতিটি ঠিক কী হবে তা আমি জানি না।

gnasher729

স্থগিত
25 নভেম্বর, 2005
  • জুন 2, 2009
চেজ আর বলেছেন: আমি আমার জাভা ক্লাসের জন্য এই প্রোগ্রামটি লেখা শেষ করেছি। এটি একটি সাধারণ প্রোগ্রাম যা একটি বেড়া ইনস্টল করতে কত খরচ হয় তা গণনা করে। শেষে, এটি জিজ্ঞাসা করে 'আপনি কি অন্য একটি অনুমান (Y/N) করতে চান', এবং ব্যবহারকারীকে হ্যাঁ বা না বেছে নিতে হবে। যাইহোক, আমি আমার চালানো শেষ করার পরে, আমি সেই বিকল্পটি পাব না, এটি কেবল বলে:

আরেকটি অনুমান গণনা করুন (Y/N): থ্রেড 'main' java.lang.StringIndexOutOfBoundsException-এ ব্যতিক্রম: স্ট্রিং ইনডেক্স রেঞ্জের বাইরে: 0
java.lang.String.charAt এ (String.java:558)
Test1.main (Test1.java:73) এ

কেন এমন করছে!!!

যেহেতু আপনার কাছে সোর্স কোড আছে, সম্ভবত একটি প্রোগ্রাম এডিটরে যা লাইন নম্বর প্রদর্শনের জন্য তৈরি করা যেতে পারে, আপনি Test1.main ফাইলের লাইন 73 কোথায় তা খুঁজে পেতে সক্ষম হবেন। এটি আপনাকে দেখাবে কোথায় সমস্যাটি ঘটে।

এখন আপনার কাছে একটি ব্যতিক্রম রয়েছে যা বলে যে 0 এর একটি সূচক 'পরিসীমার বাইরে'। আপনি যদি n অক্ষর সহ একটি স্ট্রিং অ্যাক্সেস করেন, তাহলে বৈধ সূচকগুলি কী?

এখন আপনি কি আমাদের বলতে পারেন ঠিক কোন পরিস্থিতিতে সূচক 0 একটি বৈধ সূচক নয়?

যে আপনার প্রশ্নের উত্তর দিতে হবে।

সাইলেন্টপান্ডা

মডারেটর ইমেরিটাস
8 অক্টোবর, 2002
বাঁশের বন
  • জুন 2, 2009
gnasher729 বলেছেন: যেহেতু আপনার কাছে সোর্স কোড আছে, সম্ভবত এমন একটি প্রোগ্রাম এডিটরে যা লাইন নম্বর প্রদর্শন করা যেতে পারে, আপনি Test1.main ফাইলে লাইন 73 কোথায় তা খুঁজে পেতে সক্ষম হবেন। এটি আপনাকে দেখাবে কোথায় সমস্যাটি ঘটে।

লাইনটি হল:

কোড: |_+_|
ঠিক পরে এটি 'Calculate Other Astimate (Y/N):' প্রদর্শন করে