![]() |
Java: I Can't pass a string variable into array?
I'm new to Java, very very new, and I have encountered a hair raising problem: I can't seem to pass the value of a string variable into a string array. It's very frustrating when I poll the array and get null as far as the eye can see. The code follows:
_________________________ import java.applet.*; import java.awt.*; import java.awt.event.*; import java.lang.String.*; public class SntncArray extends Applet implements ActionListener { TextField theSntnc = new TextField(60); Button pressMe=new Button("parse to array"); String fillIt; String checkIt; Label fillMe; String[] sntncArray= new String[30]; public void init() { add(theSntnc); add(pressMe); pressMe.addActionListener(this); } public void actionPerformed(ActionEvent pressMe) { fillIt=new String (theSntnc.getText()); fillMe=new Label("FillIt"+fillIt); add (fillMe); invalidate(); validate(); brkSntnc(fillIt); } public void brkSntnc(String sntnc) { int x=0; int wrdCnt=0; int myLen; while (x!=-1) { myLen=sntnc.length(); x=sntnc.indexOf(" "); sntncArray[wrdCnt]=sntnc.substring(0,x-1); wrdCnt++; System.out.println("Before:"+sntnc); sntnc=sntnc.substring(x+1,myLen); System.out.println("After:"+sntnc); System.out.println("Array at "+wrdCnt+" is:"+sntncArray[wrdCnt]); } } } ____________________________ Basically I'm trying to write a class which accepts input (in the form of an applet) and breaks the words in the input into an array, one array slot for each word. So far, as I said before, sntncArray[wrdCnt]=sntnc.substring(0,x-1); always equals null, in spite of the fact that sntnc.substring(0,x-1); is a valid string. I'm clearly missing something very obvious, but I can't figure out what. I know that strings are objects and not primitives and so I can't use them as primitives (I think) but how can I pass the value of a given string into an array? I even tried making a string to hold the value of sntnc.substring(0,x-1); ("passer") and tried sntncAray[wrdCnt]=passer; but with the same result:Null. Any assistance is greatly appreciated. Greatly greatly. VERY Greatly greatly. [Thnx] //end |
Could you please enclose your code with [ code ] tags so that it retain the formatting (I hope that it is formatted) and become easier to read. I want to help, but it's really hard when it takes so much effort just to deciper the thing. :)
|
fillIt=new String (theSntnc.getText());
Correct me if I'm wrong, but isn't the "new String( ... )" unnecessary? sntncArray[wrdCnt]=sntnc.substring(0,x-1); I believe substring excludes the last index you specify. Therefore, the -1 will probably return one less character than you want per word. I'm a little out of practice with Java so I can't dissect your code (however small it is) ATM, and my suggestions probably won't fix your problem. I'll continue looking at it though ;) . However, if this is purely for personal experimentation (and not something you plan to put on the internet where nobody is guaranteed to have JRE 1.4), the String object has had a split(String regex) method since 1.4. |
yeah the fillIt is unnecessary, I just put it there to make sure the input was accurate, rather than using System.out.println etc...
And above, how will putting [] around the code help it maintain it's formatting? |
AHA!! Boy those FAQ's are handy!
Here you go, code in a more readable format! Thanks for the tip. Code:
import java.applet.*; |
Code:
import java.applet.*; |
Oh man I feel so stupid, after days of looking at this code asking myself endlessly why it didn't work, I looked at what I posted and realized that the reason
Code:
System.out.println(sntncArray[wrdCnt]); |
| All times are GMT +1. The time now is 11:50 PM. |
Powered by vBulletin®
Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.