【发布时间】:2022-11-27 16:36:15
【问题描述】:
我必须在 Java 8 中执行以下操作:
给定一个由小写拉丁字母组成的字符串。需要判断字符串中是否出现这样的字母,如果将其去掉,则得到的字符串(长度减一)将成为回文。需要删除的这个词的打印索引。
但如果原字符串已经是回文,则需要输出-1
第一行包含一个整数
T,测试次数。接下来的每一行T都包含一系列小的拉丁字母。所以我这样做了:
import java.io.*; import java.util.*; public class Kurs { public static void main(String[] args) throws IOException { Scanner sc = new Scanner(System.in); int size = sc.nextInt(); System.out.println(); for (int i = 0; i < size; i++) { String s = sc.next(); String s_reversed = new StringBuilder(s).reverse().toString(); System.out.println(s); System.out.println(s_reversed); if(s.equals(s_reversed)){ System.out.println(-1); continue; } StringBuilder curr = new StringBuilder(); loops: for (int j = 0; j < s.length(); j++) { for (int k = 0; k < s.length(); k++) { if (k == j) continue; curr.append(s.charAt(k)); System.out.println("current: " + curr); } if(curr.toString().equals(curr.reverse().toString())){ System.out.println("polindrome--> "+curr.toString()); System.out.println("index "+j); System.out.println(); break loops; } curr.delete(0,curr.length()); System.out.println(); } } } }有了这个输入:
3 aaab baa aaa我得到这个输出:
aaab baaa current: a current: aa current: aab current: a current: aa current: aab current: a current: aa current: aab current: a current: aa current: aaa polindrome--> aaa index 3 baa aab current: a current: aa polindrome--> aa index 0这是预期的输出:
aaa aaa -1如标题所述:
Scanner不想读我最后的字符串aaa。
如果不读取它,则不会打印“-1”。所以基本上,我的问题是:如何让这个扫描仪读取最后一个字符串
aaa?
【问题讨论】:
标签: java loops printing java-8 java.util.scanner