-
Scanner连续输入两个数字怎么解决中间的换行符问题
2018-08-15 16:31:34先获取一个数值,在获取一个字符串,会出现问题。 主要原因:就是那个换行符号的问题。 如何解决呢? A:先获取一个数值后,在创建一个新的键盘录入对象获取字符串。 B:把所有的数据都先按照字符串获取,然后要什么,...- 常用的两个方法:
- public int nextInt():获取一个int类型的值
- public String nextLine():获取一个String类型的值
-
- 出现问题了:
- 先获取一个数值,在获取一个字符串,会出现问题。
- 主要原因:就是那个换行符号的问题。
- 如何解决呢?
- A:先获取一个数值后,在创建一个新的键盘录入对象获取字符串。
B:把所有的数据都先按照字符串获取,然后要什么,你就对应的转换为什么。
public class ScannerDemo { public static void main(String[] args) { // 创建对象 Scanner sc = new Scanner(System.in); // 获取两个int类型的值 // int a = sc.nextInt(); // int b = sc.nextInt(); // System.out.println("a:" + a + ",b:" + b); // System.out.println("-------------------"); // 获取两个String类型的值 // String s1 = sc.nextLine(); // String s2 = sc.nextLine(); // System.out.println("s1:" + s1 + ",s2:" + s2); // System.out.println("-------------------"); // 先获取一个字符串,在获取一个int值 // String s1 = sc.nextLine(); // int b = sc.nextInt(); // System.out.println("s1:" + s1 + ",b:" + b); // System.out.println("-------------------"); // 先获取一个int值,在获取一个字符串 // int a = sc.nextInt(); // String s2 = sc.nextLine(); // System.out.println("a:" + a + ",s2:" + s2); // System.out.println("-------------------"); int a = sc.nextInt(); Scanner sc2 = new Scanner(System.in); String s = sc2.nextLine(); System.out.println("a:" + a + ",s:" + s); } }
-
Oralce的转义字符
2011-07-30 17:12:01Oracle中对一些特殊字符处理的时候,需要进行转义。...' 单引号用来括起字符串,所以如果字符串中有',必须用两个连续的'来代替。 首先来看看如果SQL文中包括特殊字符&的时候怎么处理。 有4种办法: 1) 先执行Oracle中对一些特殊字符处理的时候,需要进行转义。
特殊字符包括:
% 在Oracle中用来匹配0到多个字符。
_ 在Oracle中用来匹配1个字符。
& 在Oracle中用来作输入提示符。
\ 默认的转义字符。
' 单引号用来括起字符串,所以如果字符串中有',必须用两个连续的'来代替。首先来看看如果SQL文中包括特殊字符&的时候怎么处理。
有4种办法:
1) 先执行set define off关闭&的输入提示作用,之后再执行set define on恢复。
2) 先执行set escape on打开'\'的转义作用(默认关闭),然后在需要输入&的地方用\&代替。
之后再执行set escape off恢复。
3) 使用字符串拼接。例如 'abc'||'&'||'def',单个的&,Oracle不会把它当作输入提示符。
4) 使用set define 把输入提示符换掉。例如set define :
5) 使用chr函数转换&的ASCII码38为字符,例如 'abc'||chr(38)||'def'再来看看\,前面说了执行set escape on打开'\'的转义作用,执行set escape off关闭。
所以如果转义打开的时候,需要输入\的地方需要用\\来代替,否则直接输入。tony@ORA11GR2> create table t(txt varchar2(64)); 表已创建。 tony@ORA11GR2> show define define "&" (hex 26) tony@ORA11GR2> show escape escape "\" (hex 5c) tony@ORA11GR2> insert into t values('abc%def'); 已创建 1 行。 tony@ORA11GR2> insert into t values('abc_def'); 已创建 1 行。 tony@ORA11GR2> set define off; tony@ORA11GR2> insert into t values('abc&def'); 已创建 1 行。 tony@ORA11GR2> set define on; tony@ORA11GR2> set escape on; tony@ORA11GR2> insert into t values('abc\&1def'); 已创建 1 行。 tony@ORA11GR2> insert into t values('abc\\def'); 已创建 1 行。 tony@ORA11GR2> set escape off tony@ORA11GR2> insert into t values('abc' || '&' || '2def'); 已创建 1 行。 tony@ORA11GR2> insert into t values('abc\1def'); 已创建 1 行。 tony@ORA11GR2> insert into t values('abc123def'); 已创建 1 行。 tony@ORA11GR2> insert into t values('abc''def'); 已创建 1 行。 tony@ORA11GR2> select * from t; TXT -------------------- abc%def abc_def abc&def abc&1def abc\def abc&2def abc\1def abc123def abc'def
现在来看看查询时候的处理:tony@ORA11GR2> select * from t where txt like 'abc\%def' escape '\'; TXT -------------------- abc%def tony@ORA11GR2> select * from t where txt like 'abc\_def' escape '\'; TXT -------------------- abc_def tony@ORA11GR2> --'&'不能通过转义字符查找 tony@ORA11GR2> set define off; tony@ORA11GR2> select * from t where txt like 'abc&def'; TXT -------------------- abc&def tony@ORA11GR2> set define on; tony@ORA11GR2> select * from t where txt like ('abc' || '&' || '1def'); TXT -------------------- abc&1def tony@ORA11GR2> select * from t where txt like ('abc''def'); TXT -------------------- abc'def
替换输入提示符:scott@ORA11GR2> select &a from dual; Enter value for a: 1 old 1: select &a from dual new 1: select 1 from dual 1 ---------- 1 scott@ORA11GR2> set define : scott@ORA11GR2> select :a from dual; Enter value for a: 1 old 1: select :a from dual new 1: select 1 from dual 1 ---------- 1
-
最长公共子串
2016-12-27 22:11:45请编写一个函数,输入两个字符串,求它们的最长公共子串,并打印出最长公共子串。 扩展:如果题目改成求两个字符串的最长公共子字符串,应该怎么求?子字符串的定义和子串的定义类似,但要求是连续分布在其他字符...题目:如果字符串一的所有字符按其在字符串中的顺序出现在另外一个字符串二中,则字符串一称之为字符串二的子串。注意,并不要求子串(字符串一)的字符必须连续出现在字符串二中。请编写一个函数,输入两个字符串,求它们的最长公共子串,并打印出最长公共子串。
扩展:如果题目改成求两个字符串的最长公共子字符串,应该怎么求?子字符串的定义和子串的定义类似,但要求是连续分布在其他字符串中。比如输入两个字符串BDCABA和ABCBDAB的最长公共字符串有BD和AB,它们的长度都是2。
#include<iostream> #include<string> using namespace std; void path(int map[][110],int n,int m,const string str) { if(n==0 || m==0) return; if(map[n][m]==1) { path(map,n,m-1,str); } else if(map[n][m]==2) { path(map,n-1,m-1,str); cout<<str[n]; } else path(map,n-1,m,str); } void ans(const string a,const string b)//最长公共子串 { int count=0; int dp[110][110],map[110][110]; memset(dp,0,sizeof(dp)); memset(map,0,sizeof(map)); int i,j; for(i=1;i<a.size();i++) for(j=1;j<b.size();j++) { if(a[i]==b[j]) { dp[i][j]=dp[i-1][j-1]+1; map[i][j]=2; } else { if(dp[i-1][j]>dp[i][j-1]) { dp[i][j]=dp[i-1][j]; map[i][j]=3; } else { dp[i][j]=dp[i][j-1]; map[i][j]=1; } } } cout<<"长度"<<dp[a.size()-1][b.size()-1]<<endl; cout<<"公共子串"; path(map,a.size()-1,b.size()-1,a); } void path1(int x,int y,int map[][110],const string str) { if(x<0 || y<0) return; if(map[x][y]!=0) { path1(x-1,y-1,map,str); cout<<str[x]; } } void ans1(const string c,const string d)//最长公共子字符串 { int map[110][110]; int max=0; memset(map,0,sizeof(map)); int i,j; int sign1=-1,sign2=-1; for(i=0;i<c.size();i++) for(j=0;j<d.size();j++) { if(c[i]==d[j] && i>=1 && j>=1) { map[i][j]=map[i-1][j-1]+1; } if(map[i][j]>max) { max=map[i][j]; sign1=i; sign2=j; } } cout<<"长度"<<max<<endl; if(sign1>-1) { cout<<"公共子字符串:"; path1(sign1,sign2,map,c); } } int main() { string a="01A2C3D4B56",b="0B1D23CA45B6A"; ans(a,b); cout<<endl; string c="12372289",d="54372289323"; ans1(c,d); return 0; }
-
单链表实现的多项式加减法计算,输入的负号变成了正号,并且幂为负时显示错误,这个程序应该怎么改?
2019-07-23 13:52:45//设置输入多项式时字符串长度最大限,也可以根据需求任意设置 int order;//设置多项式显示方式0代表降幂显示,1代表升幂显示 class node//定义一个node类,处理多项式中的<项>:如3x^(-2)、4x^3、6x或者常数5... -
这个怎么解????~~~~~
2016-06-01 01:17:00这两个函数分别用于把数组保存到一个文本字符串中、把文本字符串中的内容读取为数组。 必须自己手写代码实现保存/加载逻辑,严格按照上述的“每行一个、key=value”的格式保存。 附加说明:基于上述格式,如果... -
cad模糊查询符号_模糊查询(排除%等通配符并支持不连续关键字查询)
2020-12-30 18:33:05下面我一一说出我是怎么解决的:1、统配符问题比如说在搜索框中输入'%'、'_'、'/'时会出错,因为这些特殊符号在sql语句查询的时候是有他特定的意义的,所有这里要对前台传过来的keyword搜索内容进行排除通配符处理,...前段时间我在开发项目的时候,就关于模糊查询遇到了一点问题,主要是有两大问题:1、通配符问题;2、不连续关键字查询。下面我一一说出我是怎么解决的:
1、统配符问题
比如说在搜索框中输入'%'、'_'、'/'时会出错,因为这些特殊符号在sql语句查询的时候是有他特定的意义的,所有这里要对前台传过来的keyword搜索内容进行排除通配符处理,我是在工具类中写了一个方法代码如下:
/**
* 根据搜索特殊字符串
* @param id
* @return 取不到返回null
*/
public static String specialStr(String str){
Integer index=str.indexOf("%");
Integer index1=str.indexOf("_");
Integer index2=str.indexOf("/");
StringBuffer stringBuffer = new StringBuffer(str);
if(index!=-1) {
stringBuffer.insert(index, "\\");
}
if(index1!=-1) {
stringBuffer.insert(index1, "\\");
}
if(index2!=-1) {
stringBuffer.insert(index2, "\\");
}
return stringBuffer.toString();
}
然后在controller层导入该工具类,使用specialStr方法就ok了,代码如下:
String keyword = request.getParameter("keyword");
String keyword1 = "";
if (!"".equals(keyword) && keyword != null) {
keyword1 = CommonUtils.specialStr(request.getParameter("keyword"));// 排除%等通配符
}最后将keyword1作为搜索内容带到数据库中查询就行了。
2、不连续关键字查询
当在搜索框中输入不连续的关键字时,也能从数据库中搜索的到该内容,就比如:我想搜索公司名称为阿里巴巴的数据信息时,我输入阿巴也能搜索的到阿里巴巴,这该怎么处理呢?其实很简单,也是写一个工具类,将搜索框中的字符串每两个字符之间都加上一个‘%’就ok了,具体代码如下:
public static String specialStrKeyword(String str){
if(str==null||str==""){
return null;
}
StringBuffer stringBuffer = new StringBuffer(str);
int length=str.length();
for (int i = 0; i
char chari=stringBuffer.charAt(i);
if(i==0){
if(chari=='%'||chari=='_'||chari=='\\'){
stringBuffer.insert(i, "\\");
i++;
length++;
}
}else{
if(chari=='%'||chari=='_'||chari=='\\'){
stringBuffer.insert(i, "%\\");
i+=2;
length+=2;
}else{
stringBuffer.insert(i, "%");
i++;
length++;
}
}
}
return stringBuffer.toString();
}
同样在controller层导入该工具类,使用specialStrKeyword方法就ok了,代码如下:
String keyword = request.getParameter("keyword");
String keyword1 = '';
if (!"".equals(keyword) && keyword != null) {
keyword1 = CommonUtils.specialStr(request.getParameter("keyword"));// 排除%等通配符
keyword1 = CommonUtils.specialStrKeyword(keyword1);
}
最后将keyword1作为搜索内容带到数据库中查询就行了。
-
bcc校验位怎么算的_BCC校验码(异或校验码,异或求和)在线计算器_三贝计算网_23bei.com...
2020-12-30 22:32:35输入连续或空格隔开的16进制或ASCII码字符串后点击计算,可求其10进制累加...对于16进制方式,系统默认两个字符表示一个字节,所以必须输入偶数个字符才能进行计算。注:如果输入的是汉字,本软件的计算结果为汉字U... -
2020-09-12
2020-09-12 17:00:48考研C语言问题,在线求助 用scanf函数连续输入多个字符串时,scanf函数的格式控制部分应该怎么写,对键盘输入时有何要求? 以下两种写法,正确吗? scanf("%s%s",a,b); scanf("%s %s",a,b); -
字符串:前缀树(字典树) / 后缀树 传送门 数据结构与算法的总结(22 篇) 数据结构总览 链表专题 树专题 堆专题(上) 堆专题(下) 二叉树的遍历 动态规划 回溯 哈夫曼编码和游程编码 布隆过滤...
-
编程初学者入门2_同学投票竞选社长
2020-09-09 21:39:53题目描述 ...首先我想到是用字符数组,但是输入的是连续字符串而且要判断以0结束,不知道怎么很好的判断结束 票数问题一般要有 各自的计数,这里两个人分别为a_count,b_count 循环输入,当scanf("%c",&.. -
最长回文子串 Java 动态规划 有图
2020-07-29 14:04:20给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。 示例 1: 输入: "babad" 输出: "bab" 注意: "aba" 也是一个有效答案。 示例 2: 输入: "cbbd" 输出: "bb" 解题思路:DP 怎么DP呢,... -
Excel公式大全操作应用实例(史上最全)
2018-03-06 21:09:38如何把单元格中的数字提取出来(字符串中不连续) 数字在字符串中不连续如何提取数字 用如何提取“-”前后的字符 怎样删去﹕后的文字 怎样只取“.”之后的文字﹖ 获取单元格内容中字符串 如何提取一串数字中的几位... -
JAVA 正则表达式
2010-01-15 11:16:37多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。 自从 jdk1.4 推出 java.util.regex 包,就为我们提供了很好的 JAVA 正则表达式应用平台。 因为正则表达式是一个很庞杂的体系,... -
EXCEL函数公式集
2010-03-16 03:26:38如何把单元格中的数字提取出来(字符串中不连续) 数字在字符串中不连续如何提取数字 用如何提取“-”前后的字符 怎样删去﹕后的文字 怎样只取“.”之后的文字﹖ 获取单元格内容中字符串 如何提取一串数字中的几位... -
大工软院大二姜国海小学期-第二次作业&huffman;.zip
2019-07-07 22:56:57其实就是写频率文件的时候将字符'\r'、'\n'替换成字符串"\\r"、"\\n"写入,对于读取频率生成树时候特判一下将字符串"\\r"、"\\n"转换为'\r'、'\n'就好。两天前死活想不到怎么解决,今天突然想到的方法。 -
世界500强面试题.pdf
2019-11-01 14:33:261.5.6. 输入两个整数 n 和 m,从数列 1,2,3.......n 中 随意取几个数 ....... 116 1.5.7. 输入一个表示整数的字符串,把该字符串转换成整数并输出.............. 118 1.5.8. 给出一个数列,找出其中最长的单调... -
达梦数据库_SQL语言手册
2020-03-19 16:19:37连续两个双引号转义为一个双引号 定界标识符的例子: 保留字的清单参见附录 语言的功能及语句 语言是一种介于关系代数与关系演算之间的语言,其功能主要包括数据定义、查询 操纵和控制四个方面,通过各种不同的... -
如何编写批处理文件批处理文件批处理文件
2010-04-14 10:36:10符号字符串中的最后一个字符星号, 那么额外的变量将在最后一个符号解析之 分配并接受行的保留文本。 usebackq - 指定新语法已在下类情况中使用: 在作为命令执行一个后引号的字符串并且 引号字符为文字字符串... -
editplus 代码编辑器html c++ jsp css
2009-08-08 13:00:27(1)选择“从行首开始匹配”,“查找内容”组合框中出现字符“^”,表示待查找字符串必须出现在文本中一行的行首。 (2)选择“字符在范围中”,那么在“^”后会增加一对括号“[]”,当前插入点在括号中。括号在... -
arcgis工具
2012-10-22 22:37:31当一个图斑的边界确定,需要实现两个图斑的无缝拼接时,可以把图斑拉伸覆盖确定边界的图斑的一部分,然后用下面的图斑剪区上面的图斑。 方法二:图斑之间有小的缝隙,可以先在缝隙上任意补画一个图斑,然后合并... -
MAPGIS地质制图工具
2013-05-06 16:15:302、四点插入等高线必需先选择两条线(若未先选择线当点击完第三个点时即弹出对话框,且插入会失败),然后在线上点四个点,前两点在一条线上,后两点在另外一条线上。如果出现乱线,先改一条线的方向再试。 3、直接... -
我的第一本C++书 游历C++世界的地图 PDF 电子书
2012-06-03 19:14:203.5.2 字符串类型 3.6 数组 3.6.1 数组的声明与初始化 3.6.2 数组的使用 3.7 枚举类型 3.8 用结构体类型描述复杂的事物 3.8.1 结构体的定义 3.8.2 结构体的使用 3.9 指向内存位置的指针 3.9.1 ... -
Linux多线程服务端编程:使用muduo C++网络库
2018-08-17 21:56:161.1.3一个线程安全的Counter 示例.. . . . . . . . . . . . . . . . . . . 4 1.2对象的创建很简单. . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . 5 1.3销毁太难. . . . . . . . . . . . . . . . . ....