Java String с интами (задача взорвала мне мозг)
Скажите пожалуйста, реально ли определенному charAt присвоить другое значение, в виде char или инт ?
String s = "10210";
s.charAt(0) = '0';
Не дает присвоить ни инт ни char (((
Вопрос только про это, но если кому интересно, мой вопрос - часть решения задачи о том, что бы выводить строку вида: 10000 + 200 + 10 . Решал двумя циклами бегая по подстроке.
По этой задаче прошу не давать готвый код, можем обсудить только в виде псевдо кода.
//спустя пару часов ... Почти получилось, но вот на выходе строка:
2000000 + 100000 + 500 + 1 +
как же убрать этот последний + ???
public class Main {
public static void main(String[] args) {
String s = "2100501";
for (int i = 0; i<s.length(); i++){
if (Character.getNumericValue(s.charAt(i)) != 0){
String s2 = s.substring(i+1, s.length());
StringBuilder s3 = new StringBuilder(s2);
for (int x = 0; x<s3.length(); x++){
s3.setCharAt(x, '0');
}
System.out.print(s.charAt(i));
System.out.print(s3 + " + ");
}
}
}
}
Ответы (1 шт):
Мне кажется, Вы уже вполне самостоятельно решили задачу.
Если оставшийся вопрос - только в том, как убрать последний плюс- посмотрите на условие цикла.
У Вас может получиться что то вроде:
public class Main {
public static void main(String[] args) {
String s = "2100501";
for (int i = 0; i<s.length(); i++){
if (Character.getNumericValue(s.charAt(i)) != 0){
String s2 = s.substring(i+1, s.length());
StringBuilder s3 = new StringBuilder(s2);
for (int x = 0; x<s3.length(); x++){
s3.setCharAt(x, '0');
}
System.out.print(s.charAt(i));
System.out.print(s3);
if ( i<s.length()-1 )
System.out.print(" + ");
}
}
}
}