【Java】我做笔试题遇到的问题(一)
来源:互联网 发布:南大碎尸 知乎 编辑:程序博客网 时间:2024/05/21 07:55
1.== 和equals的区别
(1)基本数据类型比较(byte,short,char,int,long,float,double,boolean)
equals和==没有区别
(2)复合数据类型比较
equals比较的是值,而==比较的是地址
String s1 = "abc";String s2 = new String(s1);System.out.println((s1==s2));//false 因为new的时候创建新的空间,地址就不一样了System.out.println((s1.equals(s2)));//true
2.fork()函数
fork函数总是“调用一次,返回两次”,在父进程中调用一次,在父进程和子进程中各返回一次,所以下面程序应调用3次,输出8次hello
下面的程序执行输出几个hello?#include<stdio.h>#include <unistd.h>int main( ) { fork( ); fork( ); fork( ); printf(“hello\\n”);//8 return 0;}
3.输入方法Scanner类
那种网上的在线编程题要求一般都是要求输入什么,然后输出对应的结果,这个时候就用到了Scanner
输入一个字符串:
Scanner sc = new Scanner(System.in);String line = sc.nextLine();
而没有输入一个字符的方法,所以需要变化一下
Scanner sc = new Scanner(System.in);String s = sc.next();char c = s.charAt(0);
而上例只能输入一次,要想多次测试用例应改为如下:
Scanner sc = new Scanner(System.in);while(sc.hasNext()){ String s = sc.next(); char c = s.charAt(0);}
4.字符、字符串问题
做了几道关于字符串操作的题目,发现如下几个方法特别有用
//indexOf(String s):返回s在字符串中第一次出现的位置//lastIndexOf(String s):与上一个相反,返回s在字符串最后一次出现的位置//length():字符串长度//charAt(int index):返回字符串中特定位置的字符
通过这几个就可以解决很多问题,例如
1.计算字符串最后一个单词的长度,单词以空格隔开。
2.写出一个程序,接受一个有字母和数字以及空格组成的字符串,和一个字符,然后输出输入字符串中含有该字符的个数。不区分大小写。
import java.util.Scanner;public class Main { public static void main(String[] args) { int m=0; Scanner sc1 = new Scanner(System.in); String line1 = sc1.nextLine().toLowerCase(); String s = sc1.next().toLowerCase(); char c = s.charAt(0); for(int i=0;i<line1.length();i++){ if(line1.charAt(i)==c){ m++; } } System.out.print(m); }}
随着又做了一些题目,发现这几个知识点也很常用:
1.String与char[]数组相互的转化
//String转化为char[]数组,java有已经实现的方法String s = ""; char[] c = s.toCharArray();//char[]数组转化为Stringchar[] c = new char[10];String str = String.valueOf(c);
2.字符与ASCII码的转化
因为可能要求对输入的字符串进行大小写以及其他字符筛选、排序等问题,需要用到ASCII码
//字符转ASCII码,int型b就是ASCII码char a='a';int b = a;System.out.print(b);//ASCII码转字符,b是转化后的字符int a = 97;char b = (char) a;System.out.print(b);
3.截取字符串方法:substring()
有的时候需要对整个字符串中的一部分进行操作,这个时候需要用到substring方法截取字符串。2种用法:
1.public String substring(int beginIndex)
返回一个新的字符串,它是此字符串的一个子字符串。该子字符串从指定索引处的字符开始,直到此字符串末尾。
2.public String substring(int beginIndex, int endIndex)
返回一个新字符串,它是此字符串的一个子字符串。该子字符串从指定的 beginIndex 处开始,直到索引 endIndex - 1 处的字符。因此,该子字符串的长度为 endIndex-beginIndex。
4.字符串分隔方法split()
在java.lang包中有String.split()方法,返回是一个数组,演示一个简单的例子:
String s = sc.nextLine();//spilt用于分隔字符串,本例用于分隔空格,例如 a bc,就被分成"a","bc", String[] s1 = s.split(" ");
5.进制转化
//输入16进制字符串,输出10进制int型数String s = "7890abcd"; int i = Integer.parseInt(s, 16); //输入16进制字符串0xA,输出10进制字符串,把前两个字符截掉留后面的String s = "0xA;String s1 =Integer.toString(Integer.parseInt(s.substring(2), 16));System.out.println(s1);
- 【Java】我做笔试题遇到的问题(一)
- 我遇到的java 笔试题: 定义stack 接口类
- 我遇到的java笔试题--观察者设计模式
- 笔试中遇到的问题总结(一)
- 笔试中遇到的问题总结(一)
- 我遇到的java问题
- Java面试笔试常遇到的问题
- [前端笔试]我遇到的那些前端笔试题~
- 四月份遇到的一些笔试题(回忆版一)
- 我遇到的java 笔试题: java 实现单链表并逆转输出
- 我遇到的java 笔试题:Android数字签名以及如何制作
- Java 笔试中经常遇到的10道笔试题
- Java 笔试中经常遇到的笔试题
- Java 笔试中经常遇到的笔试题
- 笔试、面试遇到的问题
- 我面试时遇到的面试题和笔试题
- 做几个笔试题【一】
- 做几个笔试题【一】
- Java泛型编程
- Solr 6.0 学习环境搭建
- Codeforces510B【dfs】
- python linecache pachage
- Ionic控件 Button
- 【Java】我做笔试题遇到的问题(一)
- zookeeper在分布式应用中的作用
- Parsing Data for android-21 failed
- TestNG的IConfigurationListener监听器详解
- 51NOD 1101 换零钱
- 关于js的事件绑定以及优缺点
- 隐含语义索引lsi
- 生活随笔:《我为何要黑游戏策划》
- 堆、栈对比分析