Solved

Ho to solve this problem using java

Posted on 2014-02-14
5
300 Views
Last Modified: 2014-02-18
Hi Experts,
I have a requirement where I need to split a string into different lines. Max line 10, each line should have 69 characters (Including space)if the  string size is less than 680 all other lines will be left blank.  If the size is more than 680 we need to start from line 1
If less than 136
Line1  1 - 68
line2   69 – 136
Line3  blank
..
line10 blank

Each of them has a width of 68 character

Scenario #2
Total Number of Length is 1200
line      1             68
line2    69           136
line3    137        204
line4    205        272
line5    273        340
line6    341        408
line7    409        476
line8    477        544
line9    545        612
line10 613        680

Start from Line1
line      681        748
line2    749        816
line3    817        884
line4    885        952
line5    953        1020
line6    1021      1088
line7    1089      1156
line8    1157      1200
line9  blanks
line10 blanks

Thanks,
A
0
Comment
Question by:AliAjoo
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
  • 2
5 Comments
 
LVL 75

Expert Comment

by:käµfm³d 👽
ID: 39860487
A couple of for loops could handle this:

e.g.

class Splitter {
	public static void main(String[] args) {
		String input = "01234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890";

		for (int counter = 0; counter < input.length(); counter++) {
			for (int line = 1; line <= 10; line++) {
				System.out.print("Line " + Integer.toString(line) + " : ");

				if (counter < input.length()) {
					for (int character = 0; character < 69; character++) {
						System.out.print(input.charAt(counter));
						counter++;
	
						if (counter == input.length()) break;
					}
				}

				System.out.println();
			}
		}
	}
}

Open in new window

0
 

Author Comment

by:AliAjoo
ID: 39860877
Thanks Kufmed, it is ver helpful, I have to add it each line in an xml element.  How do I do that?

startElement("p_text");
            addNode("type", 2);
            String notes = getNotes();
            if(null!= notes){
                  System.out.println("Notes Length is " +notes);
                  for(int counter=0; counter<=notes.length();counter++){
                        for (int line = 1; line <= 10; line++) {
                              addNode("textine" + line , text will go here inside a node );
                              
                        }      
                  }

            }

            endElement("p_text");

      }


 protected void addNode(String name, int data) throws SAXException {
            addNode(name, String.valueOf(data));
    }
0
 
LVL 32

Expert Comment

by:awking00
ID: 39861647
I'm not exactly sure of your requirements. If we change the single line length limitation to 4 and the total line limitation to 40 in your example (just to make it easier for testing), then a string of 13 characters, say 'abcdefghijklm' should produce the following 10 lines?:
1-4   abcd
5-8   efgh
9-12  ijkl
13-16 m
17-20 blank
21-24 blank
25-28 blank
29-32 blank
33-36 blank
37-40 blank

And a string of 50 characters, say 'abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwx',   should produce the following lines?:

1-4   abcd
5-8   efgh
9-12  ijkl
13-16 mnop
17-20 qrst
21-24 uvwx
25-28 yzab
29-32 cdef
33-36 ghij
37-40 klmn

and also the folloowing lines?:
41-44 opqr
45-48 stuv
49-52 wx
53-56 blank
57-60 blank
61-64 blank
65-68 blank
68-72 blank
73-76 blank
77-80 blank

If that's correct, then what do you want to do with them? Also, what is meant by including space? If that's not correct, can you provide a little more clarification. Perhaps some actual data and the anticipated output.
0
 
LVL 75

Accepted Solution

by:
käµfm³d   👽 earned 400 total points
ID: 39861657
Instead of printing out the text, create new variables that hold the name and data, and assign the data to those variables. At the end of the character loop, call your node-adding code.

e.g.

class Splitter {
    public static void main(String[] args) {
        String input = "01234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890";

        for (int counter = 0; counter < input.length(); counter++) {
            for (int line = 1; line <= 10; line++) {
                String name = "Line " + Integer.toString(line) + " : ";
                String data = "";

                if (counter < input.length()) {
                    for (int character = 0; character < 69; character++) {
                        data = data + input.charAt(counter);
                        counter++;
    
                        if (counter == input.length()) break;
                    }
                }

                addNode(name, data);
            }
        }
    }
}

Open in new window

0
 

Author Closing Comment

by:AliAjoo
ID: 39869323
this is exactly what i needed
0

Featured Post

How our DevOps Teams Maximize Uptime

Our Dev teams are like yours. They’re continually cranking out code for new features/bugs fixes, testing, deploying, responding to production monitoring events and more. It’s complex. So, we thought you’d like to see what’s working for us. Read the use case whitepaper.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This was posted to the Netbeans forum a Feb, 2010 and I also sent it to Verisign. Who didn't help much in my struggles to get my application signed. ------------------------- Start The idea here is to target your cell phones with the correct…
In this post we will learn how to make Android Gesture Tutorial and give different functionality whenever a user Touch or Scroll android screen.
Viewers will learn about the regular for loop in Java and how to use it. Definition: Break the for loop down into 3 parts: Syntax when using for loops: Example using a for loop:
The viewer will learn how to implement Singleton Design Pattern in Java.

740 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question