rize
rize

Reputation: 859

Java add chars to a string

I have two strings in a java program, which I want to mix in a certain way to form two new strings. To do this I have to pick up some constituent chars from each string and add them to form the new strings. I have a code like this(this.eka and this.toka are the original strings):

String muutettu1 = new String();
String muutettu2 = new String();
muutettu1 += this.toka.charAt(0) + this.toka.charAt(1) + this.eka.substring(2);
muutettu2 += this.eka.charAt(0) + this.eka.charAt(1) + this.toka.substring(2);
System.out.println(muutettu1 + " " + muutettu2);

I'm getting numbers for the .charAt(x) parts, so how do I convert the chars to string?

Upvotes: 5

Views: 96915

Answers (5)

jitter
jitter

Reputation: 54605

Just use always use substring() instead of charAt()


In this particular case, the values are mutable, consequently, we can use the built in String class method substring() to solve this problem (@see the example below):

Example specific to the OP's use case:

    muutettu1 += toka.substring(0,1) + toka.substring(1,2) + eka.substring(2);
   
    muutettu2 += eka.substring(0,1) + eka.substring(1,2) + toka.substring(2);


Concept Example, (i.e Example showing the generalized approach to take when attempting to solve a problem using this concept)

    muutettu1 += toka.substring(x,x+1) + toka.substring(y,y+1) + eka.substring(z);

    muutettu2 += eka.substring(x,x+1) + eka.substring(y,y+1) + toka.substring(z);

"...Where x,y,z are the variables holding the positions from where to extract."

Upvotes: 7

htlbydgod
htlbydgod

Reputation: 340

You can also convert an integer into a String representation in two ways: 1) String.valueOf(a) with a denoting an integer 2) Integer.toString(a)

Upvotes: 0

This thing can adding a chars to the end of a string

StringBuilder strBind = new StringBuilder("Abcd");
strBind.append('E');
System.out.println("string = " + str);
//Output => AbcdE
str.append('f');
//Output => AbcdEf

Upvotes: -2

Thomas Jung
Thomas Jung

Reputation: 33092

The obvious conversion method is Character.toString.

A better solution is:

String muutettu1 = toka.substring(0,2) + eka.substring(2);
String muutettu2 = eka.substring(0,2) + toka.substring(2);

You should create a method for this operation as it is redundant.

The string object instatiantiation new String() is unnecessary. When you append something to an empty string the result will be the appended content.

Upvotes: 7

alphazero
alphazero

Reputation: 27234

StringBuilder builder = new StringBuilder();
builder
   .append(this.toka.charAt(0))
   .append(this.toka.charAt(1))
   .append(this.toka.charAt(2))
   .append(' ')  
   .append(this.eka.charAt(0))
   .append(this.eka.charAt(1))
   .append(this.eka.charAt(2));
System.out.println (builder.toString());

Upvotes: 15

Related Questions