Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.80/15: Рейтинг темы: голосов - 15, средняя оценка - 4.80
 Аватар для waip
7 / 7 / 1
Регистрация: 27.05.2011
Сообщений: 297

substring or charAt

24.01.2013, 17:18. Показов 3030. Ответов 25
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет.
Вот условие
С клавиатуры задаются два строковых значения. Требует-
ся получить новую строку, образованной по правилу: на
нечетных позициях стоят символы первой строки, на чет-
ных – символы второй строки.
Начал писать вот так

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
public static void main(String[] args) {
        // TODO code application logic here
        Scanner console = new Scanner (System.in);
        String a1,a2 = null;
        
        a1 = console.next();
        for(int i = 0; i<=5;i+=2)
        {
            a2 = a1.substring(i, i);
        }
        System.out.println(a2);
        
    }
Строчку a2 = a1.substring(i, i); пробовал записать и через a2=a1.charAt(i);
Но результата 0.
Просьба помочь.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.01.2013, 17:18
Ответы с готовыми решениями:

charAt
public class _3 { public static void main(String args) {\ try { Scanner input = new Scanner(System.in); ...

charAt
подскажите пожулуйста вот часть кода программы public int xxx(String p) {String e; int R = 0, n=0,q; for(q=1;q&lt;8;q++) ...

CharAt в VBA
И снова я со своими вопросами. Переход с JS на VBA даётся мне не легко. Какой функцией возможно заменить CharAt из JS, т.к CharAt в VBA я...

25
любитель покушать
 Аватар для Севак
687 / 641 / 248
Регистрация: 25.09.2011
Сообщений: 1,313
24.01.2013, 17:38
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import java.util.Scanner;
 
 
public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        
        String a = scan.next();
        String b = scan.next();
        
        StringBuilder rez = new StringBuilder();
        for(int i=0; i<a.length(); ++i){
            rez.append(a.charAt(i));
            rez.append(b.charAt(i));
        }
        
        System.out.println(rez.toString());
    }
 
}
Строки имеют одинаковую длинну?
1
 Аватар для waip
7 / 7 / 1
Регистрация: 27.05.2011
Сообщений: 297
24.01.2013, 17:42  [ТС]
Пусть будут одинаковыми. Технология ясна в принципе.
Только не понятно почему ++i а не i++
0
любитель покушать
 Аватар для Севак
687 / 641 / 248
Регистрация: 25.09.2011
Сообщений: 1,313
24.01.2013, 17:47
waip, религия мне не позволяет i++ написать
ну а вся разница в постфиксной и префиксной записи улавливается в таком примере:
Java
1
2
3
int x = 5;
int y = x++;
System.out.println(x+" "+y);
Добавлено через 1 минуту
т.е. в случае с x++ сначала в y кладется 5, а уже потом x увеличивается на 1, в случае же с ++x, x сначала увиеличится, а потом y присвоится это значение
1
27.01.2013, 15:37

Не по теме:

на счет постфиксных и префиксных инкремента и декремента. будьте внимательны если вы еще изучаеете другие си-подобные языки. в разных языках и компиляторах эта операциия может выполнятся по-разному. и породила много холиваров. тут вы найдете больше информации

0
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
27.01.2013, 15:48
Цитата Сообщение от lowercase Посмотреть сообщение

Не по теме:

на счет постфиксных и префиксных инкремента и декремента. будьте внимательны если вы еще изучаеете другие си-подобные языки. в разных языках и компиляторах эта операциия может выполнятся по-разному. и породила много холиваров. тут вы найдете больше информации

ну ява потому и энтерпрайз что тут всё ЖЁСТКО регламентировано, вполне можно на это рассчитывать
0
 Аватар для waip
7 / 7 / 1
Регистрация: 27.05.2011
Сообщений: 297
30.01.2013, 17:01  [ТС]
Собственно опять на те же грабли наступаю.
Решил в строке поискать пробел и сделал это так

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    public static void main(String[] args) {
        // TODO code application logic here
        int x=0;
        Scanner console = new Scanner(System.in);
       String test = console.next();
       String test2 = null;
       ///////copy II part of word////////
       test2=test.substring(0, test.length());
    for(int i=0; i<test.length();i++){
        if(test.charAt(i)==" "){
         System.out.println("I see backspace");   
        }
    }
System.out.println("First: "+test);       
System.out.println("Second: "+test2);
System.out.println("Index: "+x);
    }
}
Но компилятор ругается на if и говорит что нельзя сравнить символ со строкой.
вопрос почему... ведь можно же сравнить байт и инт или лонг и инт.
и как можно исправить это.
0
 Аватар для Drygba
512 / 454 / 119
Регистрация: 17.02.2012
Сообщений: 1,032
Записей в блоге: 1
30.01.2013, 17:09
Цитата Сообщение от waip Посмотреть сообщение
вопрос почему... ведь можно же сравнить байт и инт или лонг и инт
почему я не умею летать, если умею ходить.

Цитата Сообщение от waip Посмотреть сообщение
как можно исправить это
Java
1
if (String.valueOf(s.charAt(i)).equals(" "))
1
 Аватар для waip
7 / 7 / 1
Регистрация: 27.05.2011
Сообщений: 297
30.01.2013, 17:18  [ТС]
Цитата Сообщение от Drygba Посмотреть сообщение
почему я не умею летать, если умею ходить.
Имеется ввиду, что если числа можно сравнить м/у собой тогда почему нельзя сравнить символы?

Добавлено через 6 минут
Ваш вариант не работает(
0
 Аватар для Drygba
512 / 454 / 119
Регистрация: 17.02.2012
Сообщений: 1,032
Записей в блоге: 1
30.01.2013, 17:29
почему у меня работает?
Java
1
2
3
4
5
6
7
String s = "ssf sd sefg s";
        for (int i = 0; i<s.length(); i++){
            if (String.valueOf(s.charAt(i)).equals(" ")){
                System.out.println("I see backspace");
            }
            else System.out.println(s.charAt(i));
        }
Цитата Сообщение от waip Посмотреть сообщение
Ваш вариант не работает(
как не работает?
0
 Аватар для waip
7 / 7 / 1
Регистрация: 27.05.2011
Сообщений: 297
31.01.2013, 15:04  [ТС]
Работает, вижу. Я ввод с клавиатуры сделал поэтому не работает. Скорее всего проблемы с IDE.

Добавлено через 21 час 28 минут
Не создавая новую тему возник вопрос.
Как реализовать эту задачу?
Посчитать количество слов во введенной строке символов, начи-
нающихся с «Т» или «т».
У меня была идея проверять символ который идет после пробела. Таким образом
Таким образом товар был отправлен на товарную базу.
Но тогда при такой технологии у меня не получается проверить первое слово. Конечно можно было бы проверить это слово отдельно, но я бы хотел получить какую нибудь универсальную технологию для такой задачи.
0
 Аватар для Drygba
512 / 454 / 119
Регистрация: 17.02.2012
Сообщений: 1,032
Записей в блоге: 1
31.01.2013, 15:36
Цитата Сообщение от waip Посмотреть сообщение
Не создавая новую тему возник вопрос.
Правила - один вопрос - одна тема.

Посчитать количество слов во введенной строке символов, начи-
нающихся с «Т» или «т».
можно так
Java
1
2
3
4
5
6
7
8
String s = "Тебе лучше сидеть на тополе. И не толкаться. Тополь бы тебе по пояс";
        Pattern p = Pattern.compile("\\sт|^Т|\\sТ");
        Matcher m = p.matcher(s);
        int count = 0;
        while (m.find()){
            count++;
        }
        System.out.println("Слов начинающихся с буквы Т - " + count);
0
 Аватар для waip
7 / 7 / 1
Регистрация: 27.05.2011
Сообщений: 297
31.01.2013, 15:45  [ТС]
А что означает эта строчка?
Цитата Сообщение от Drygba Посмотреть сообщение
Pattern p = Pattern.compile("\\sт|^Т|\\sТ");
0
 Аватар для Drygba
512 / 454 / 119
Регистрация: 17.02.2012
Сообщений: 1,032
Записей в блоге: 1
31.01.2013, 16:54
создание регулярного выражения, ознакомьтесь с ними, для начала 1 2 и т. д.
\\s - пробел
^Т - буква Т в начале
| - или
вот и получаем - ищем: пробел и маленькая буква т или Т вначале текста или пробел и большая буква Т
в цикле считаем количество совпадений
1
 Аватар для waip
7 / 7 / 1
Регистрация: 27.05.2011
Сообщений: 297
03.02.2013, 13:27  [ТС]
Протестил. Не работает(

Добавлено через 2 минуты
Блин... работает только тогда когда я присваюваю строке слова. А если я это делаю с клавиатуры - не работает. ХММММ
0
любитель покушать
 Аватар для Севак
687 / 641 / 248
Регистрация: 25.09.2011
Сообщений: 1,313
03.02.2013, 13:41
waip, даже когда считываешь с клавы присваиваешь стрингу и передаешь матчеру все-равно не делает?
0
 Аватар для waip
7 / 7 / 1
Регистрация: 27.05.2011
Сообщений: 297
03.02.2013, 13:43  [ТС]
Цитата Сообщение от Севак Посмотреть сообщение
waip, даже когда считываешь с клавы присваиваешь стрингу и передаешь матчеру все-равно не делает?
Может я что-то не так делаю?
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
    public static void main(String[] args) {
        // TODO code application logic here
        int count=0;
        Scanner console = new Scanner(System.in);
        String ges = console.next();
        Pattern p = Pattern.compile("\\st|^T|\\sT");
        Matcher m = p.matcher(ges);
        while(m.find()){
            count++;
        }
        System.out.println(count);
        
    }
0
любитель покушать
 Аватар для Севак
687 / 641 / 248
Регистрация: 25.09.2011
Сообщений: 1,313
03.02.2013, 13:54
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
 
class Main{   
    public static void main(String[] args) throws IOException {
        // TODO code application logic here
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        String s = reader.readLine();
        
        Pattern p = Pattern.compile("\\sт|^Т|\\sТ");
        Matcher m = p.matcher(s);
        int count = 0;
        while (m.find()){
            count++;
        }
        System.out.println("Слов начинающихся с буквы Т - " + count);
        
    }
}
Java
1
2
Троллить тролей самое трольное занятие
Слов начинающихся с буквы Т - 3
Добавлено через 38 секунд
Но замечу, что работает не всегда, допустим, когда ввожу просто троль, то выдает 0

Добавлено через 1 минуту
если считать словом даже символ, то вот
Java
1
Pattern p = Pattern.compile("т|^Т|\\sТ");
слово же может и в начале стоять, поэтому пробел не нужен
0
2838 / 1647 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
03.02.2013, 14:03
Цитата Сообщение от Севак Посмотреть сообщение
слово же может и в начале стоять, поэтому пробел не нужен
Слова, начинающиеся... Так что разделители нужны, но можно и строчную "т" в начале строки добавить.
0
03.02.2013, 14:09

Не по теме:

Цитата Сообщение от Somebody Посмотреть сообщение
Так что разделители нужны, но можно и строчную "т" в начале строки добавить.
нечего по турецки писать, первое слово в предложении начинается с большой буквы, а не кому как приснилось

1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.02.2013, 14:09
Помогаю со студенческими работами здесь

Вызов внутреннего метода, применение charAt()
Всем привет! Помогите понять код. Не могу разобраться, как работает метод с вызовом самого себя void backward(int idx) { if(idx !=...

Метод charAt для всех символов
Метод charAt возвращает символ, стоящий на указанной позиции в строке. А как сделать можно чтоб он все символы рассматривал. Задание такое...

Методы charAt() и length() выдают некорректный результат с кириллическими строками
ос win10х64|notepad++|powershell|jdk 9 код class test { public static void main(String args){ String str = &quot;hello...

Substring
Всем привет, объясните пожалуйста такой момент! В данной задаче вводим число и считаем количество четных цифр и нечетных, и вот ну ни...

SubString
Подскажите пожалуста! ListBox1-&gt;Items-&gt;Add(s-&gt;Strings.SubString(1, s-&gt;Strings.AnsiPos(&quot;|&quot;)-1));этот оператор берёт строчку и заносит в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru