Форум программистов, компьютерный форум, киберфорум
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. Показов 3049. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия SDL 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual. . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru