简体   繁体   中英

java splitting a string by line \n not working

So I have a string which is from a text file, essentially the text file is just 5 lines which read:

x=1
y=15
z=128
topx=100
leftx=150
label= this is a test

I am able to get the split to work once which separates via the '=' sign, but when I try to split the string again by \\n nothing works, I have tried using "\\r?\\n", line.Separator etc. but the string value always stays the same, basically the 5 lines without the characters before the = sign. How would I pull out the individual lines to assign variables to?

Here is the code I have, basically the println is to try and see if I can get the first value '1' to list separate from the rest of the lines.

    public static void main(String[] a) {
 15   draw d = new draw();
 16   Read r = new Read();
 17   String m = r.doRead("variables.txt");
 18 
 19   String[] ss = new String[5];  
 20   ss = m.split("\n");
 21 
 22   String[] kv= new String[5];
 23   for (int i=0; i<ss.length; i++) {
 24           kv = ss[i].split("=");
 25           String eol = System.getProperty("line.seperator"); 
 26           String test = kv[1];
 27           String[] split = new String[5];
 28           split = test.split("\n");
 29           
 30           
 31 
 32            
 33           String first = split[0];  
 34           //String second = split[1];       
 35           //String third = split[2];
 36           //String fourth = split[3];
 37           //String fifth = split[4];      
 38           System.out.println(first);
 39           }

When every line looks like

x=1 y=15 z=128 topx=100 leftx=150 label= this is a test

you should first split at a whitespace to get 5 parts ( x=1 , y=15 , ...) and then at = to get the "key" and "value" part of each part.

check this out:

String s = "x=1\ny=15\nz=128\ntopx=100\nleftx=150\nlabel= this is a test";
String[] ss = s.split("\n");
System.err.println( Arrays.asList(ss[0].split("=")) );

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM