Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.05.2013, 16:35   #1
Platinum Master
 
Регистрация: 07.05.2013
Сообщений: 6
По умолчанию java, не меняет символ в строке, не могу понять почему

Всем доброго дня.

Вот сама задача - /*В тексте после буквы Р, если она не последняя в слове, ошибочно напечатана буква А вместо О. Внести исправления в текст.*/

не могу понять в чем ошибка.. вроде все должно менять.. но почему-то пишет что не тот тип..
Код:
import java.util.Scanner;

public class NewClass 
{
    public static void main(String[] str) 
    {
        try 
        {
            System.out.println("Введите количество строк:");
            Scanner sc = new Scanner(System.in);
            int n = Integer.parseInt(sc.nextLine());
            if (n == 0) 
                return;
            String[] array = new String[n];
            System.out.println("Введите " + n + " строк");
            for (int i = 0; i < n; i++) 
                array[i] = new String(sc.nextLine());
            
            for(int i=0;i<n;i++)
                for(int j=0;j<array[i].length()-1;i++)
                    if(array[i].charAt(j)=='p' && array[i].charAt(j+1)=='a')
                        array[i].charAt(j+1)='o';/*!*/
            
        }
        catch(NumberFormatException e)  {   e.getMessage(); }
    }
}
вот где показывает ошибку:
Вложение 60107
Заранее спасибо
Platinum Master вне форума Ответить с цитированием
Старый 07.05.2013, 16:59   #2
tools
Форумчанин
 
Регистрация: 07.10.2008
Сообщений: 213
По умолчанию

попробую, не вникая в код, ляпнуть:

Код:
for(int i=0;i<n;i++)
                for(int j=0;j<array[i].length()-1;i++)
Два раза одну и ту же переменную цикла увеличиваете. Второй раз не j , вместо i ?

Последний раз редактировалось tools; 07.05.2013 в 17:01.
tools вне форума Ответить с цитированием
Старый 07.05.2013, 17:01   #3
Platinum Master
 
Регистрация: 07.05.2013
Сообщений: 6
По умолчанию

Цитата:
Сообщение от tools Посмотреть сообщение
поробую, не вникая в код, ляпнуть:

Код:
for(int i=0;i<n;i++)
                for(int j=0;j<array[i].length()-1;i++)
Два раза одну и ту же переменную цикла увеличиваете. Второй раз не j , вместо i ?
да, спасибо, надо j поставить, описался.
но проблема с тем что не меняет сам символ не делась)
Platinum Master вне форума Ответить с цитированием
Старый 07.05.2013, 18:22   #4
tools
Форумчанин
 
Регистрация: 07.10.2008
Сообщений: 213
По умолчанию

Это вообще что такое:
Код:
array[i].charAt(j+1)
Возвращяемое значение не является l-value. О каком там присваивании может идти речь.
tools вне форума Ответить с цитированием
Старый 07.05.2013, 18:38   #5
tools
Форумчанин
 
Регистрация: 07.10.2008
Сообщений: 213
По умолчанию

Такое решение написал, не знаю насколько оно Вам подходит или оптимально, т.к. на Java не программирую:

Код:
import java.util.Scanner;

public class NewClass 
{
    public static void main(String[] str) 
    {
        try 
        {
            System.out.println("Введите количество строк:");
			Scanner sc = new Scanner(System.in);
            int n = Integer.parseInt(sc.nextLine());
            if (n == 0) 
                return;
            String[] array = new String[n];
            System.out.println("Введите " + n + " строк");
            for (int i = 0; i < n; i++) 
                array[i] = new String(sc.nextLine());
            
            for(int i=0;i<n;i++)
                array[i] = array[i].replace("pa","po");
            for(int i=0;i<n;i++)
            	System.out.println(array[i]);
            
        }
        catch(NumberFormatException e)  {   e.getMessage(); }
    }
}
tools вне форума Ответить с цитированием
Старый 07.05.2013, 18:42   #6
Platinum Master
 
Регистрация: 07.05.2013
Сообщений: 6
По умолчанию

Цитата:
Сообщение от tools Посмотреть сообщение
Такое решение написал, не знаю насколько оно Вам подходит или оптимально, т.к. на Java не программирую:

Код:
import java.util.Scanner;

public class NewClass 
{
    public static void main(String[] str) 
    {
        try 
        {
            System.out.println("Введите количество строк:");
			Scanner sc = new Scanner(System.in);
            int n = Integer.parseInt(sc.nextLine());
            if (n == 0) 
                return;
            String[] array = new String[n];
            System.out.println("Введите " + n + " строк");
            for (int i = 0; i < n; i++) 
                array[i] = new String(sc.nextLine());
            
            for(int i=0;i<n;i++)
                array[i] = array[i].replace("pa","po");
            for(int i=0;i<n;i++)
            	System.out.println(array[i]);
            
        }
        catch(NumberFormatException e)  {   e.getMessage(); }
    }
}
я так сам уже писал. препод не принял, мудак
ему так больше наверно нравится
Platinum Master вне форума Ответить с цитированием
Старый 07.05.2013, 18:58   #7
tools
Форумчанин
 
Регистрация: 07.10.2008
Сообщений: 213
По умолчанию

А чего ему еще-то надо, можно придумать еще несколько способов, но мы всегда будем получать новую строку. Т.к., насколько я помню, в Java String - это immutable object.

Последний раз редактировалось tools; 07.05.2013 в 19:00.
tools вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не меняет символ в строке, почему так? Platinum Master Общие вопросы по Java, Java SE, Kotlin 3 13.05.2013 14:01
Не могу понять, почему ругается на это :( The Real Kos Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 19.09.2012 10:07
Не могу понять почему не дорисовывает.. victor5133 Общие вопросы C/C++ 0 24.02.2012 12:55
Не могу понять в почему ошибка Donim Паскаль, Turbo Pascal, PascalABC.NET 5 08.06.2011 23:07
Почему не работает...хм....понять не могу! Артур Иваныч Microsoft Office Excel 9 01.12.2009 17:58