黑马程序员技术交流社区

标题: 这个程序为什么输入中间有空格的就不会显示 [打印本页]

作者: honcarry    时间: 2016-5-30 23:43
标题: 这个程序为什么输入中间有空格的就不会显示
  1. import java.util.Scanner;

  2. public class Test_1 {

  3.         /**
  4.          * 需求:键盘录入一个随机字符串,把里面的*全部去掉,但是开头和结尾的*不能除
  5.          */

  6.         public static void main(String args[]) {
  7.                 // Scanner类
  8.                 System.out.println("Please input a string: "); // 这里试了一下输入String数据,但中间有空格就不能显示,Scanner类还不具有这功能
  9.                 Scanner str = new Scanner(System.in);
  10.                 char[] inputStr = str.next().toCharArray();
  11.                 StringBuffer sb = new StringBuffer();
  12.                 int[] flags = new int[inputStr.length];
  13.                 boolean flagstart = false;
  14.                 boolean flagend = false;
  15.                 for (int i = 0, len = inputStr.length; i < (len / 2) + 1; i++) {
  16.                         if (i == 0) {
  17.                                 if (inputStr[i] == '*') {
  18.                                         flags[i] = 1;
  19.                                         flagstart = true;
  20.                                 } else {
  21.                                         flags[i] = 1;
  22.                                 }
  23.                                 if (inputStr[len - 1 - i] == '*') {
  24.                                         flags[len - 1 - i] = 1;
  25.                                         flagend = true;
  26.                                 } else {
  27.                                         flags[len - 1 - i] = 1;
  28.                                 }
  29.                         } else {
  30.                                 if (inputStr[i] == '*' && flagstart) {
  31.                                         flags[i] = 1;
  32.                                         flagstart = true;
  33.                                 } else if (inputStr[i] != '*') {
  34.                                         flags[i] = 1;
  35.                                         flagstart = false;
  36.                                 } else {
  37.                                         flags[i] = 0;
  38.                                         flagstart = false;
  39.                                 }
  40.                                 if (inputStr[len - 1 - i] == '*' && flagend) {
  41.                                         flags[len - 1 - i] = 1;
  42.                                         flagend = true;
  43.                                 } else if (inputStr[len - 1 - i] != '*') {
  44.                                         flags[len - 1 - i] = 1;
  45.                                         flagend = false;
  46.                                 } else {
  47.                                         flags[len - 1 - i] = 0;
  48.                                         flagend = false;
  49.                                 }
  50.                         }
  51.                 }

  52.                 for (int j = 0, lens = inputStr.length; j < lens; j++) {
  53.                         if (flags[j] == 1) {
  54.                                 sb.append(inputStr[j]);
  55.                         }
  56.                 }

  57.                 System.out.println(sb.toString());
  58.         }

  59. }
复制代码





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2