例子问题
例子问题1:字符串
考虑下面的代码:
Int [] val = {5,4,2};
字符串s = "Hervaeus";
字符串s2 = "";
For (int I = 0;I < s.length();我+ +){
For (int j = 0;J < vals[i % vals.length];j + +) {
s2 += s.charAt(i);
}
}
System.out.println (s2);
上面代码的输出是什么?
Hervaeeeeeuuuuss
HHHHHeeeeerrrrrrvvvvvaaaaaeeeeeuuuuusssss
代码将注意执行。
HHHHHeeeerrvvvvvaaaaeeuuuuussss
HHHHHeeeerrvaeus
HHHHHeeeerrvvvvvaaaaeeuuuuussss
对于这个问题,主要要看的是代码的主循环。这个循环首先遍历String中的每个字符史:
Int I = 0;I < s.length();我+ +
接下来,注意内部循环中的条件:
瓦尔斯[我%瓦尔斯.长度]
上的模量我将产生介于0和2之间的值(给定val的长度)。这意味着你将在内循环中循环以下时间序列:
5、4、2、5、4、2、5、4
这将复制索引(我)的初始字符串,使用5、4、2、5等作为复制计数。因此,你将复制“H”5次,“e”4次,等等。这给了你一个输出:
HHHHHeeeerrvvvvvaaaaeeuuuuussss
问题111:计算机科学
考虑下面的代码:
char[]值={'我',' ',' l ', ' o ', ' v ', ' e ', ' ', ' y ', ' o ', ' u ','!','!'};
字符串s = "";
For (int I = 0;I < values。长度/ 2; i++) {
Char temp = values[i];
Values [i] = Values[值]。长度- i-1];
值(值。长度-我-1]= temp;
}
For (int I = 0;I < values.length;我+ +){
S += values[i];
}
System.out.println(年代);
上面代码的输出是什么?
我爱你!
其他的都没有
!!你爱我
!!我
uyeolI !o六世
!!我
这是最容易想到的值数组作为字符串:“我爱你!!”
现在,循环将运行for或次了。注意它在每次迭代中都做了什么。它交换了at的值我而且值。长度-我-1.因此,它将进行以下交换:
0和11
1和10
等等……
这一系列的交换将最终逆转数组。因此,你的输出是:
!!我
例子问题1:字符串
下列哪个代码块使字符串中的其他字符都是相同的年代大写,从第二个字符开始?
字符串=“这是一个伟大的字符串!”;
字符串s2 = "";
For (int I = 0;I < s.length();我+ +){
char c = Character.toLowerCase(s.charAt(i));
If (i % 2 == 1) {
c = Character.toUpperCase(c);
}
s2 + = c;
}
字符串=“这是一个伟大的字符串!”;
字符串s2 = "";
For (int I = 0;I < s.length();我+ +){
char c = Character.toLowerCase(s.charAt(i));
s2 + = c;
If (i % 2 == 0) {
c = Character.toUpperCase(c);
}
}
字符串=“这是一个伟大的字符串!”;
字符串s2 = "";
For (int I = 0;I < s.length();我+ +){
char c = Character.toLowerCase(s.charAt(i));
If (i % 2 == 0) {
c = Character.toUpperCase(c);
}
s2 + = c;
}
字符串=“这是一个伟大的字符串!”;
字符串s2 = "";
For (int I = 0;I < s.length();我+ +){
charat (i);
If (i % 2 == 1) {
c = Character.toUpperCase(c);
}
s2 + = c;
}
字符串=“这是一个伟大的字符串!”;
字符串s2 = "";
For (int I = 0;I < s.length();我+ +){
char c = Character.toLowerCase(s.charAt(i));
If (i % 2 == 3) {
c = Character.toUpperCase(c);
}
s2 + = c;
}
字符串=“这是一个伟大的字符串!”;
字符串s2 = "";
For (int I = 0;I < s.length();我+ +){
char c = Character.toLowerCase(s.charAt(i));
If (i % 2 == 1) {
c = Character.toUpperCase(c);
}
s2 + = c;
}
鉴于字符串不能在内部修改,您将不得不将结果存储在一个新的字符串中,即s2.现在,对于每一个字符年代,你将不得不使字符小写开始:
char c = Character.toLowerCase(s.charAt(i));
接下来,对于奇数值我,您将需要使您的值为大写。模运算符很适合这个!您可以使用% 2查找奇数值。当一个数除以2的余数等于1时,你就知道这个数是奇数。因此,你有这样的条件:
If (i % 2 == 1){…
然后,一旦你适当地大写,你可以把你的角色s2.
例子问题1:字符串
下列哪个代码块将字符数组转换为字符串?
私有静态无效字符串(){
字符串s = "早上6点!";
Char [] vals = new Char [s.length()];
For (int I = 0;I < s.length();我+ +){
val [i] = s.charAt(i);
}
}
私有静态无效字符串(){
char [] vals = {' A ', ' t ', ' ', ' 6 ', ' ', ' ', ' m ', ' !”};
字符串年代;
For (int I = 0;I < val .length;我+ +){
S += vals[i];
}
}
私有静态无效字符串(){
char [] vals = {' A ', ' t ', ' ', ' 6 ', ' ', ' ', ' m ', ' !”};
字符串s = "";
For (int I = 0;I < val .length;我+ +){
S = val [i];
}
}
私有静态无效字符串(){
char [] vals = {' A ', ' t ', ' ', ' 6 ', ' ', ' ', ' m ', ' !”};
字符串s = "";
For (int I = 0;I < val .length;我+ +){
[i] = s;
}
}
私有静态无效字符串(){
char [] vals = {' A ', ' t ', ' ', ' 6 ', ' ', ' ', ' m ', ' !”};
字符串s = "";
For (int I = 0;I < val .length;我+ +){
S += vals[i];
}
}
私有静态无效字符串(){
char [] vals = {' A ', ' t ', ' ', ' 6 ', ' ', ' ', ' m ', ' !”};
字符串s = "";
For (int I = 0;I < val .length;我+ +){
S += vals[i];
}
}
考虑这个问题最简单的方法是对正确答案进行评论。你必须从定义字符数组开始:
char [] vals = {' A ', ' t ', ' ', ' 6 ', ' ', ' ', ' m ', ' !”};
接下来,你必须初始化字符串值年代为空字符串。这是至关重要的。否则,你不能构建你的字符串!
字符串s = "";
接下来,你有一个循环。这将遍历字符并将值连接到变量年代.连接字符的操作是“+=”。这将为您提供字符数组的字符串值。
例子问题1:字符串
参见下面的代码:
字符串[]books = {
"De Secundis intent "
“利维坦”,
"阿威罗伊在亚里士多德《论世界与celo》中的大注释"
《白痴逻辑手册》
《大号手的逻辑学Utens》
};
字符串userInput;
//在这里删除的代码中,用户输入值“Logica Utens for Tuba Players”…
For (int I = 0;I < books.length;我+ +){
if(books[i] == userInput) {
system . out。println(“这是一本很棒的书!!”);
}
}
上面的代码有什么错误?
它会溢出一个数组。
字符串比较。
在数组元素上使用if。
数组的声明方式。
的使用[]数组上的运算符。
字符串比较。
的使用是这段代码的唯一主要问题==运算符来比较两个字符串。因为用户已经输入了这个值,所以在这个测试中不会有相等的值。你必须使用方法.equals为了检查两个字符串是否相等。代码应该是:
如果(书[我] .equals (userInput)){
...
(在某些情况下,==将用于字符串比较,即涉及字面量时。但是,您应该避免依赖于此,并始终使用.equals ())。
例子问题1:字符串
字符串[]books = {
"理性的逻辑"
"Kritik der reinen Vernunft"
《托马斯哲学课程》,
“快乐的人说快乐的话”,
“疯狂的世界,疯狂的语言”
};
String str = "猫在车里";
ArrayList
For (int I = 0;I < books.length;我+ +){
if(books[i].compareTo(str) > 0) {
vals.add(书[我]);
}
}
System.out.println (val);
这个方法的输出是什么?
[托马斯哲学课程,快乐的人的快乐话语,疯狂的世界的疯狂话语]
[]
[快乐的话给快乐的人,疯狂的话给疯狂的世界]
[逻辑学和理性的艺术,Kritik der reinen Vernunft]
[Kritik der reinen Vernunft,逻辑学和理性艺术]
[逻辑学和理性的艺术,Kritik der reinen Vernunft]
的compareTo方法与字符串对象进行比较,并返回:
- 当它们相等时为0
- 当给定的字符串按字母顺序(实际上是按字典顺序)晚于方法的参数时,则为正数。
- 当给定的字符串按字母顺序(实际上是按字典顺序)位于方法的参数之前时,则为负值。
我们的字符串可以这样排列:
《托马斯哲学课程》
“快乐的人说快乐的话”
“疯狂的世界,疯狂的语言”
"Kritik der reinen Vernunft"
《理性的逻辑》
对于每一个,我们都要问:“它的顺序是否比‘小猫在车里’晚?”这是真实的“Kritik der reinen Vernunft”和“逻辑和理性的艺术”。因此,我们的输出是:
[逻辑学和理性的艺术,Kritik der reinen Vernunft]
注意顺序——这是由于原始数组中的顺序。
例子问题1:字符串
字符串greet = "Hello ";
字符串的子;
Int len = greet.length();
Sub =问候。年代ubstring(0, (len/2));
System.out.println(子);
打印的是什么?
他
冥界
地狱
错误
你好
冥界
问候语长度为6个字符,包括结尾空格。
问候。年代ubstring(0, (len/2)) is equal to greet.substring(0, 3)
greet的子串从第0个位置到第二个位置,而不是第三个位置。
例子问题1:字符串
考虑下面的代码:
Int [] val = {5,4,2};
字符串s = "Hervaeus";
字符串s2 = "";
For (int I = 0;I < s.length();我+ +){
For (int j = 0;J < vals[i % vals.length];j + +) {
s2 += s.charAt(i);
}
}
System.out.println (s2);
上面代码的输出是什么?
Hervaeeeeeuuuuss
HHHHHeeeeerrrrrrvvvvvaaaaaeeeeeuuuuusssss
代码将注意执行。
HHHHHeeeerrvvvvvaaaaeeuuuuussss
HHHHHeeeerrvaeus
HHHHHeeeerrvvvvvaaaaeeuuuuussss
对于这个问题,主要要看的是代码的主循环。这个循环首先遍历String中的每个字符史:
Int I = 0;I < s.length();我+ +
接下来,注意内部循环中的条件:
瓦尔斯[我%瓦尔斯.长度]
上的模量我将产生介于0和2之间的值(给定val的长度)。这意味着你将在内循环中循环以下时间序列:
5、4、2、5、4、2、5、4
这将复制索引(我)的初始字符串,使用5、4、2、5等作为复制计数。因此,你将复制“H”5次,“e”4次,等等。这给了你一个输出:
HHHHHeeeerrvvvvvaaaaeeuuuuussss
问题111:计算机科学
考虑下面的代码:
char[]值={'我',' ',' l ', ' o ', ' v ', ' e ', ' ', ' y ', ' o ', ' u ','!','!'};
字符串s = "";
For (int I = 0;I < values。长度/ 2; i++) {
Char temp = values[i];
Values [i] = Values[值]。长度- i-1];
值(值。长度-我-1]= temp;
}
For (int I = 0;I < values.length;我+ +){
S += values[i];
}
System.out.println(年代);
上面代码的输出是什么?
我爱你!
其他的都没有
!!你爱我
!!我
uyeolI !o六世
!!我
这是最容易想到的值数组作为字符串:“我爱你!!”
现在,循环将运行for或次了。注意它在每次迭代中都做了什么。它交换了at的值我而且值。长度-我-1.因此,它将进行以下交换:
0和11
1和10
等等……
这一系列的交换将最终逆转数组。因此,你的输出是:
!!我
例子问题1:字符串
下列哪个代码块使字符串中的其他字符都是相同的年代大写,从第二个字符开始?
字符串=“这是一个伟大的字符串!”;
字符串s2 = "";
For (int I = 0;I < s.length();我+ +){
char c = Character.toLowerCase(s.charAt(i));
If (i % 2 == 1) {
c = Character.toUpperCase(c);
}
s2 + = c;
}
字符串=“这是一个伟大的字符串!”;
字符串s2 = "";
For (int I = 0;I < s.length();我+ +){
char c = Character.toLowerCase(s.charAt(i));
s2 + = c;
If (i % 2 == 0) {
c = Character.toUpperCase(c);
}
}
字符串=“这是一个伟大的字符串!”;
字符串s2 = "";
For (int I = 0;I < s.length();我+ +){
char c = Character.toLowerCase(s.charAt(i));
If (i % 2 == 0) {
c = Character.toUpperCase(c);
}
s2 + = c;
}
字符串=“这是一个伟大的字符串!”;
字符串s2 = "";
For (int I = 0;I < s.length();我+ +){
charat (i);
If (i % 2 == 1) {
c = Character.toUpperCase(c);
}
s2 + = c;
}
字符串=“这是一个伟大的字符串!”;
字符串s2 = "";
For (int I = 0;I < s.length();我+ +){
char c = Character.toLowerCase(s.charAt(i));
If (i % 2 == 3) {
c = Character.toUpperCase(c);
}
s2 + = c;
}
字符串=“这是一个伟大的字符串!”;
字符串s2 = "";
For (int I = 0;I < s.length();我+ +){
char c = Character.toLowerCase(s.charAt(i));
If (i % 2 == 1) {
c = Character.toUpperCase(c);
}
s2 + = c;
}
鉴于字符串不能在内部修改,您将不得不将结果存储在一个新的字符串中,即s2.现在,对于每一个字符年代,你将不得不使字符小写开始:
char c = Character.toLowerCase(s.charAt(i));
接下来,对于奇数值我,您将需要使您的值为大写。模运算符很适合这个!您可以使用% 2查找奇数值。当一个数除以2的余数等于1时,你就知道这个数是奇数。因此,你有这样的条件:
If (i % 2 == 1){…
然后,一旦你适当地大写,你可以把你的角色s2.