2015-10-06 3 views
0

Например, я бы получил вход от пользователя для неопределенного количества символов и добавил их в строку, затем я использую if input1.toLowerCase().startsWith(input2.toLowerCase())), чтобы определить, является ли первая часть обеих строк одинаковой. В этом случае input1 и input2 обе строки взяты со сканером.Как получить часть строки в Java и распечатать ее?

Как распечатать те же части каждой строки?

Например, если я введу «Привет, меня зовут» для input1 и «Привет мое имя» для input2, он должен вывести «Привет мое имя»

EDIT: Чтобы уточнить, я преобразовать строки в нижний регистр и затем попытаться сравнить два с startsWith корпус не имеет значения в этой задаче

+1

Вы просто напечатаете input2, потому что это то, что будет общим между ними, потому что ваше состояние использует startWith(). –

ответ

2

чтобы найти самую большую стартовую строку из двух строк, вы должны проверить каждый символ отдельно:

int i; 
for (i = 0; i < str1.length() && i < str2.length() && str1.charAt(i) == str2.charAt(i); i++); 
String common = str1.substring(0, i); 
+0

Хорошо, что это работает по большей части _except_, когда первая строка длиннее второй строки (она сбивает одну букву). Я могу фактически компенсировать это, чтобы исправить это, но почему это так? –

+1

@ Nero-One (с исправленной опечаткой - см. Последнее редактирование) работает для меня: если я устанавливаю 'String str1 =" abcde "; String str2 = "abc"; 'result is' "abc" ' – Bohemian

0

Ваша логика должна течь таким образом:

  • Сначала проверьте input1 и input2 те же
  • Затем проверьте, если input1 StartsWith input2
    • Если это правда, то печать input2
    • Else, проверьте его наоборот (input2 StartsWith input1)
      • Если это правда, то вы должны напечатать input1

Попробуйте создать этот код самостоятельно - его лучший способ узнать кодирования: метод проб и ошибок! Помните, что это программное обеспечение - ничто не взорвется, когда вы столкнетесь с ошибкой компилятора Java.

Смежные вопросы