精华内容
下载资源
问答
  • 1.有很多漏洞的实现方法 public static void main(String[] args) { System.out.println("开始输入:... //从键盘输入字符串 Scanner input = new Scanner(System.in); //获取键盘输入的字符串 ...

    1.有很多漏洞的实现方法

    public static void main(String[] args) {
            System.out.println("开始输入:");
            //从键盘输入字符串
            Scanner input = new Scanner(System.in);
            //获取键盘输入的字符串
            String str = input.nextLine();
            System.out.println("结束");
            //字符串转字符数组
            char[] num = str.toCharArray();
            //使用StringBuffer对象存储拼接后的数字
            StringBuffer hire = new StringBuffer();
            //如果字符串以“-”开头
            if(str.startsWith("-")) {
                //在拼接前给字符串加上符号
                hire.append("-");
                for (int i = 0; i < num.length; i++) {
                    hire.append(num[i]);
                }
            }else {
                //Character.isDigit(a) 判断a是否是数字,如果是,则返回true,否则返回false
                //判断字符串的开否是否是数字,如果不是,直接输出0
                if(!Character.isDigit(num[0])) {
                    System.out.println(0);
                }else {
                    //如果是数字,则对数字进行拼接
                    hire.append("-");
                    for (int i = 0; i < num.length; i++) {
                        hire.append(num[i]);
                    }
                }
            }
            System.out.println(hire);
        }

    2.借鉴大神的实现方式

    public class Demo {

        public static void main(String[] args) {
            System.out.println("开始输入:");
            //从键盘输入字符串
            Scanner input = new Scanner(System.in);
            //获取键盘输入的字符串
            String str = input.nextLine();
            System.out.println("结束");
            int myAtoi = myAtoi(str);
            System.out.println(myAtoi);
        }
        
        public static int myAtoi(String str) {
            // 合法性判断
            if (str.isEmpty()) return 0;
            // 正负号标记
            int sign = 1;
            // 转换值
            int base = 0;
            // 索引位数
            int i = 0;
            // 剔除开始空白字符
            while (str.charAt(i) == ' ')
                i++;
            // 判断正负号
            if (str.charAt(i) == '-' || str.charAt(i) == '+')
                sign = str.charAt(i++) == '-' ? -1 : 1;
            // 索引有效数字字符
            while (i < str.length() && str.charAt(i) >= '0' && str.charAt(i) <= '9') {
                // that statement is used to test if the num is bigger than INT_MAX after the str[i] is handled, if base > INT_MAX/10, 
                // then base10+ str[i] -‘0’> base10>INT_MAX, or when base== INT_MAX/10, that means all the places are the same as INT_MAX except the ones place, so str[i]>‘7’ is needed. 
                // 上面这段是LeetCode国外站对下面代码的解释。
                // 简单来说就是
                // 如果`base > MAX_VALUE/10`,那么`base*10 + new_value` > `base*10` > `MAX_VALUE`。这个应该很容易理解,这种情况下就会发生溢出。
                // 若`base == INT_MAX/10`,而且`new_value = str.charAt(i++) - '0'`大于`7`,也会发生溢出。因为`MAX_VALUE = 2147483647`
                if (base > Integer.MAX_VALUE / 10 || (base == Integer.MAX_VALUE / 10 && str.charAt(i) - '0' > 7)) {
                    return (sign == 1) ? Integer.MAX_VALUE : Integer.MIN_VALUE;
                }
                // 计算转换值,str.charAt(i++) - '0'可以把字符串转换成数字
                base = 10 * base + (str.charAt(i++) - '0');
            }
            // 计算结果值
            return base * sign;
        }

    注意:判断字符串的值是否超出32位有符号数的范围的思路:

    1.把字符串转换成字符数组,然后依次获取每个字符,定义一个起始值int为0的变量来代表获取到的字符base,定义一个int为1的变量来代表字符的符号sign。判断base是否大于整数的最大值除以10,或者判断base如果=整数的最大值除以10,并且获取到的当前字符的值大于7,如果是,判断base的符号,如果是“-”,则返回整数的最小值,否则返回整数的最大值;如果base的大小在32位整数范围内,则返回base*sign;

    展开全文
  • 从键盘上获取字符

    2019-03-23 08:27:56
    #include<stdio.h> int main(){ char a,b,c; a=getchar(); b=getchar(); c=getchar(); putchar(a); putchar(b); putchar(c); putchar('\n'); return 0; } ...

    #include<stdio.h>
    int main(){
        char a,b,c;
        a=getchar();
        b=getchar();
        c=getchar();
        putchar(a);
        putchar(b);
        putchar(c);
        putchar('\n');
        return 0;

    展开全文
  • c语言实现从键盘输入任意字符串,判断其是否是回文字符串。 代码如下://判断字符串是否是回文 #include #include int huiwen(char *str) { ... //获取字符串的长度 int i,j,temp; for(i=0,j=len

    c语言实现从键盘输入任意字符串,判断其是否是回文字符串。
    代码如下:

    //判断字符串是否是回文
    #include<stdio.h>
    #include<string.h>
    int huiwen(char *str)
    {
        //char ch[100];
        int len=strlen(str);  //获取字符串的长度
        int i,j,temp;
        for(i=0,j=len-1;i<=j;i++,j--)  //第一位和最后一位相比较循环判断
        {
            if(str[i]==str[j])  //
                temp=1;
            else                 
            {
                temp=0;
                break;
            }
        }
        return temp;
    }
    main()
    {
        char ch[100];
        printf("请输入一组字符串:");
        //scanf("%s",&ch);  //无法判断特殊字符如空格键;
        gets(ch);           //可以判断键盘输入的任意字符
        if(huiwen(ch))
            printf("这组字符串 %s 是回文字符串!\n",ch);
        else
            printf("这组字符串 %s 不是回文字符串!\n",ch);
    }
    

    运行结果如下图:
    是回文字符串的结果

    不是回文字符串的结果

    展开全文
  • 1.从键盘获取一串字符串,去除重复的字符后输出 2.产生10个0~20的随机数,要求不能重复 分析: 这两道题的关键就是,在集合中不能存取相同的元素,所以我们可以直接创建set集合、在存储元素时不能出现重复元素;...

    这里我们给出两道简单的集合应用题:

    1.从键盘获取一串字符串,去除重复的字符后输出

    2.产生10个0~20的随机数,要求不能重复

    分析:

    这两道题的关键就是,在集合中不能存取相同的元素,所以我们可以直接创建set集合、在存储元素时不能出现重复元素;或者创建list集合,最后通过遍历集合,发现有相同元素直接调用remove()方法删除即可。

    1.从键盘获取一串字符串,去除重复的字符后输出

    方法一:(使用set集合中的HashSet集合)

    import java.util.HashSet;
    import java.util.Iterator;
    import java.util.Scanner;
    
    public class Demo {
        public static void main(String[] args) {
            Scanner scanner = new Scanner (System.in);
            HashSet<Character> hashSet = new HashSet<> ();
            System.out.println ("请输入一个字符串:");
            String str = scanner.next ();
            for (int i = 0; i < str.length (); i++) {
                hashSet.add (str.charAt (i));
            }
            Iterator<Character> iter = hashSet.iterator ();
            while (iter.hasNext ()) {
                Character c = iter.next ();
                System.out.print (c + " ");
            }
        }
    }
    

    输出结果:

    请输入一个字符串:
    helloword
    r d e w h l o 
    

     我们可以看到输出结果中相同的元素都没有了,可是输出的元素排序是无序的,这就与set集合的性质有关

    方法二:(使用list集合中的ArrayList集合)

    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.Scanner;
    
    public class Demo {
        public static void main(String[] args) {
            Scanner scanner = new Scanner (System.in);
            ArrayList<Character> arrayList = new ArrayList<> ();
            System.out.println ("请输入一个字符串:");
            String str = scanner.next ();
            for (int i = 0; i < str.length (); i++) {
                arrayList.add (str.charAt (i));
            }
            //遍历集合,有相同的元素直接删除
            for (int i = 0; i < arrayList.size (); i++) {
                for (int j = i + 1; j < arrayList.size () - 1; j++) {
                    if (arrayList.get (i).equals (arrayList.get (j))) {
                        arrayList.remove (j);
                        j--;
                    }
                }
            }
            Iterator<Character> iter = arrayList.iterator ();
            while (iter.hasNext ()) {
                Character c = iter.next ();
                System.out.print (c + " ");
            }
        }
    }

    运行结果:

    请输入一个字符串:
    helloword
    h e l o w r d 
    

    list集合虽然无法直接去重,但是他的元素是有序的,利于存和取

    2.产生10个0~20的随机数,要求不能重复

    import java.util.*;
    
    public class TestDemo {
        public static void main(String[] args) {
            Random random = new Random ();
            HashSet<Integer> set = new HashSet<> ();
            while (set.size () < 10) {
                int num = random.nextInt (20) + 1;
                if (!set.contains (num)) {
                    set.add (num);
                }
            }
            Iterator<Integer> iter = set.iterator ();
            while (iter.hasNext ()) {
                Integer integer = iter.next ();
                System.out.print (integer + " ");
            }
        }
    }
    

    运行结果:

    1 3 4 20 7 10 11 13 14 15 

     

    展开全文
  • 使用指针和数组两种方式存储键盘输入的字符串 C语言中保存字符串常使用两种方式,一种是...使用该方式可以实现从键盘获取输入然后保存到指定的数组中,数组中每个单元保存的是一个个的字符。 另外一种方式,即使用
  • c#获取键盘输入的字符串

    千次阅读 2019-08-22 00:26:14
    在控制台应用程序中,Console.ReadLine()用于获取键盘上输入的字符串; string str = Console.ReadLine(); 若需要输入整数需进行转换: int num = Convert.ToInt32(str); 输入小数的转换: double num1 = Convert....
  • 从键盘读入多行字符串,统计输出字符串行数。输入“q”,退出程序。 ``` System.out.println("请输入字符串"); Scanner scanner = new Scanner(System.in); String str = null; while((str=scanner....
  • *、从键盘获取一行输入字符串,要求去除重复字符。 分析过程: 1. 需要使用 Scanner 类 2. 输入的是一行字符串,需要转换成字符数组 3. 创建 HashSet 集合对象 4. 字符...
  • C语言 获取字符串的方法

    千次阅读 2016-07-14 11:06:06
    在C语言中,获取字符串主要有三种方法 1 scanf("%s",src); 这个方法很常见,遇到空格和回车结束。 例: #include int main() { char src[100]; scanf("%s",src); printf("%s",src); ...
  • c语言从键盘输入字符串

    万次阅读 2018-10-21 15:15:52
    #include<stdio.h> #include<...// 输入三个字符:每输入一个字符就要用空格或回车间隔,结束时输入回车 int main(){ char b[4]; for(int i = 0;i < 3;i++) { scanf("%c",&am...
  • /**********************************************************编一程序,记录从键盘输入的字符串,计算字符串的长度,并用指针实现对字符串的逆向输出。. QQ139767***********************************************...
  • 1、cin cin读取时,遇到空格、制表符、回车会立即终止输入 代码: #include <iostream> #include <string> using namespace std;...使用cin进行输入时,想要输入多个字符串,可以使用while 代码: .
  • 前言:此篇为如何用shell脚本来达到从键盘输入字符串可倒序输出的效果。不借用rev命令实现。方法一:#!/bin/bash #by Anasta in 1.0-2018.5.3 #使用read读入一段字符串,最后以倒序的方式打印出这一段字符串 echo &...
  • //判断字符串是否为空 func trimString(#str:String)->String{ var nowStr = str.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceCharacterSet()) return nowStr } //去除空格和回车 func ...
  • 字符串由英文字母组成,如“asdasqewqcccdddd”,要求只遍历一次找出其中连续2次及以上的字符串片段 上述字符串应输出“ccc,dddd” public static void main(String[] args){ char[] s = ...
  • 知识点: 1.Scanner 对象(system.in)标准...2.nextLine() 获取字符串 3.tocharArray() 将字符串转换为char数组形式 public static void main(String[] args) { Scanner scan = new Scanner(System.in); ...
  • java获取用户输入的字符串! 通过向键盘获取字符,用swith语句显示星期几。
  • VS2017使用scanf()从键盘读取字符串

    千次阅读 2019-04-14 10:52:44
    vs2017无法使用scanf()函数,但是提供了scanf函数,在使用scanf()读取二维数组时... //输入一个字符串到第二行 printf(”%s“,a[1]); return 0; } 上述代码语法并没有什么问题,但是执行时报错。 解决方法...
  • 给定一个长度不超过100的字符串,请你求出它的具体长度。 输入格式 输入一个字符串。 输出格式 输出一个整数,表示它的长度。 输入样例: I love Beijing. 输出样例: 15 先定义一个字符数组,使用gets...
  • 统计–键盘输入的字符串中各种字符的个数 package ShangXueTang; //自动导包:sc+alt+/ import java.util.Scanner; /*题目:统计--键盘输入的字符串中各种字符的个数 */ public class Test_02 { public static ...
  • 从键盘上输入一个字符串存放在一个字符数组中,按照以下规则对其加密:其中所有的英文字母加3,即字母’A’加密后变成’D’,而’X’加密后变成’A’,小写字母也采用此规则转换为对应的小写字母,其它字符不变,将...
  • 读取输入做为字符串 $test=;#从键盘上读取输入的行作为变量test的值,这种方式只读取一行 print $test; #这种方式读取出来的内容,是以换行符为结束的 读取输入做为列表 chomp(@test=);#从键盘上读取输入内容做为...
  • C语言之从字符串获取数字

    万次阅读 多人点赞 2019-06-11 10:53:09
    以前就有的一个想法,如果有一串字符串,里面又有数字,又有字母,我们应该如何获取到里面的数字呢?废话不多说,直接看源码: ...int longer,i, //i 用于控制循环,longer用于获取字符串的大小 int nums = 0,nu...
  • java 获取字符串或文件的md5值

    千次阅读 2017-10-21 17:05:41
    java 获取字符串或文件的md5,以下获取md5方式来自网络搜集,分享一下,就当笔记了   import org.apache.commons.codec.digest.DigestUtils; import org.apache.commons.io.IOUtils; import java.io.*; import ...
  • 从键盘输入字符串并输出该字符串(汇编程序—I/O   DATAS SEGMENT STR DB"please input a string:$"  BUF DB 20  DB ?  DB 20 DUP (?) CRLF DB 0AH,0DH,"$";此处输入数据段...
  • 最近参与公司RPA项目开发,其中遇到了自动化输入功能,主要三中不同的模式实现,包括(Ui Automation、Windows Message、Simulate),其中Simulate需要调用Win32API中的SendInput函数模拟键盘输入字符串,下面就...
  • * 练习从键盘读取字符串信息 * InputStreamReader类读取键盘输入的字符串信息 * 过滤流BufferedReader捕获节点流InputStreamReader的字符信息 */ public static void main(String[] args) { String s ; ...
  • 在我们定义一个字符串变量的时候如需使用键盘输入数据给字符串赋值一般会用到三种方式,记录一下三种方式的区别。如我们定义一个字符串 char name[10];(10代表字符串的长度)。scanf:char name[10]; scanf("%s&...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 105,815
精华内容 42,326
关键字:

从键盘上获取字符串